我有一个复杂的数字类与覆盖ToString输出。显示复杂的数字
有五例为复数的结构,每个都需要输出格式稍有不同:
a == 0, b == 0: "0"
a == 0, b != 0: "bi"
a != 0, b > 0: "a + bi"
a != 0, b < 0: "a - |b|i"
a != 0, b == 0: "a"
我也这样与它的工作原理:
public override string ToString() {
if (this.real == 0) {
if (this.imaginary == 0) return "0";
else return this.imaginary.ToString() + "i";
}
else {
if (this.imaginary == 0) return this.real.ToString();
else if(this.imaginary > 0) return this.real.ToString() + " + " + this.imaginary.ToString() + "i";
else return this.real.ToString() + " - " + (this.imaginary * -1).ToString() + "i";
}
}
是否有一个更清洁如何做到这一点?也许条件较少,可能案例较少。
[CodeReview](http://codereview.stackexchange.com/)。 – Sinatr
只要删除if()语句,else子句已经做了你想要的。 –
我不想要像0 + 3i这样的东西,我想要输出为3i –