コンストラクタで値を入れる?
class Apple { private string color = "red"; }
class Apple { private string color; Apple() { this.color = "red"; } }
どちらがいいだろう。
この例はどちらでもいい
上の例はどちらでもいいです。
強いて言うなら、上のほうが短いので楽ですね。
ではどういう時に変えると良いか
引数が必要
class Apple { private string color; Apple(string color) { this.color = color; } }
このように、生成するときに値を入れる。
あるいは、引数を使用して関数を動かすときには必要。
静的呼び出し
class Apple { static private string color = "red"; }
この場合は、引数を取らないほうが良い。
なぜか。
静的呼び出しのときにはインスタンス化されていない。
コンストラクタを必ずしも通るわけではないので、どのタイミングで値が入れられているかわからない。
どちらも必要。
ということで、場合によってはどちらが良いかが変わる。
ちゃんと用途を考えて書きましょうφ(・・