C# でギザギザの配列を作成する際に、この問題を理解するのに苦労しています。以下のコードを見ると、問題なくコンパイルされています。しかし、配列「場所」に値を代入している 2 行を取り、それらをメソッド内からクラス自体内に移動すると、コンパイラーは多くの奇妙なエラーで不平を言い始めます。
最初は、クラス内で「new」キーワードを使用したためだと思いました(クラスは単なる定義ですが、「new」はインスタンスを参照します...定義内にインスタンスを含めることはできませんか? ?)。しかし、「場所」の初期化での「new」キーワードの使用は、クラス内で初期化されていても問題ないことに気付きました。説明してください。
public class Place
{
string[][] places = new string[2][];
public void enumerate()
{
places[0] = new string[] { "Canada", "United States" };
places[1] = new string[] { "Calgary", "Edmonton", "Toronto" };
Console.WriteLine(places[0][1]);
}
}
編集:明示的に言うと、実行時にエラーが発生します
public class Place
{
string[][] places = new string[2][];
places[0] = new string[] { "Canada", "United States" };
places[1] = new string[] { "Calgary", "Edmonton", "Toronto" };
public void enumerate()
{
Console.WriteLine(places[0][1]);
}
}
「配列サイズは変数宣言で指定できません (「新しい」式で初期化してみてください)」「無効なトークン =、{、クラス内」「名前空間にフィールドやメソッドなどのメンバーを直接含めることはできません」というエラーが発生しました