我有一個複雜的數字類與覆蓋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 –