出力用のToStringのオーバーライドを持つ複素数クラスがあります。複合番号の表示
複素数の構造のための5例、出力のためにわずかに異なるフォーマットを必要とする各あります
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にしたいと思う。 –