C# 言語仕様 (7.6.10.4) によると、ツリー型の配列作成式があります。
new non-array-type [ expression-list ] rank-specifiersopt array-initializeropt
new array-type array-initializer
new rank-specifier array-initializer
3 つ目は、暗黙的に型指定された配列を対象としています。
var foo = new[] { 1, 2, 3 };
質問: 暗黙的に型指定された配列の場合に、配列サイズを明示的に設定することを禁止する重要な理由はありますか?
次の構文と比較すると、非対称の動作のように見えます。
var foo = new int[3] { 1, 2, 3 };
更新します。
少し明確にします。私が見ることができる明示的に設定された配列サイズと配列初期化子の組み合わせの唯一の利点は、初期化子の長さのコンパイル時のチェックです。3 つの の配列を宣言した場合int
、初期化子には 3 つの が含まれている必要がありますint
。
暗黙的に型指定された配列にも同じ利点があると思います。もちろん、この利点を利用するかしないかは個人の好みです。