オブジェクト初期化子はやっぱ便利
以前、オブジェクト初期化子について勉強しましたが、その時は何が便利なのかいまいちわかりませんでした。
しかしいくつかのプログラムを書いてる内に、なるほどこれは便利だと思うようになりました。
using System; class Class { public string Name; } class Program { static void Output(Class cobj) { Console.WriteLine(cobj.Name); } static void Main() { var cobj = new Class(); cobj.Name = "foo"; Output(cobj); } }
$ main foo
上記処理は一時変数cobjを定義し、Nameに値を設定しているわけですが、オブジェクト初期化子を使えば式として扱えるため、一時変数を省略することができるので処理が簡素になります。
using System; class Class { public string Name; } class Program { static void Output(Class cobj) { Console.WriteLine(cobj.Name); } static void Main() { // オブジェクト初期化子を使ってそのまま渡す Output(new Class() { Name = "foo" }); } }
便利ですね