同様の質問に対する Eric Lippert の回答を参照してください。この特定のシナリオでは、どちらも同じコンパイル済みコードと同じ結果を生成します。2 つの構文の唯一の違いは、2番目の構文は変数宣言でのみ使用できることです。つまり、既存の変数の値を変更するために使用することはできません。例えば:
// Compiles fine
string[] Meats = {"Roast beef", "Salami", "Turkey", "Ham", "Pastrami" };
// Causes compilation error
Meats = {"Roast beef", "Salami", "Turkey", "Ham", "Pastrami" };
// Also causes compilation error
string[] Meats2;
Meats2 = {"Roast beef", "Salami", "Turkey", "Ham", "Pastrami" };
個人的には、変数の型を明示的に宣言する場合は、変数宣言に 2 番目の構文を使用することをお勧めします。
string[] Meats = {"Roast beef", "Salami", "Turkey", "Ham", "Pastrami" };
キーワードを使用する傾向がある場合は、最初の構文をお勧めしますvar
。これにより、結果がどのようなタイプであると予想されるかが明確になり (読みやすさ)、コンパイラーに次のようにチェックさせるためです。
var Meats = new string[]{"Roast beef", "Salami", "Turkey", "Ham", "Pastrami" };
一般に、1 つのスタイルを選択し、一貫性を持たせることが最善です。