配列の初期化のテクニック
プログラミングC# 第6版 7.1.1
ちょっと第6章の例外の話は一旦飛ばします。ってことで第7章、配列の話ですね。
配列の初期化は以下のようにできます。
using System; class Program { static void Main () { string[] strs = new string[] { "foo", "bar", }; foreach(string str in strs) { Console.WriteLine(str); } } }
$ main foo bar
しかもこの初期化、配列の宣言時だけでなく、配列の変更時でもできるそうです。
using System; class Program { static void Main () { string[] strs; // 宣言時じゃなくても動く strs = new string[] { "foo", "bar", }; foreach(string str in strs) { Console.WriteLine(str); } } }
$ main foo bar
面白いですね。これの使い道ですが、例えば配列を受け取るような関数を呼び出すときに使えます。
using System; class Program { static void Output (string[] strs) { foreach(string str in strs) { Console.WriteLine(str); } } static void Main () { // インラインで配列の初期化 Output(new string[] { "FOO", "BAR", }); } }
$ main FOO BAR
よく使われるテクニックらしいので覚えておきます。