クラスオブジェクト
メニューを表示するにはスワイプしてください
クラスのオブジェクトは、次の構文を使用して作成可能:
index.cs
1className variableName = new className();
クラスのフィールドには、ドット(.)演算子を使用してアクセス可能:
index.cs
1variableName.fieldName
例えば:
index.cs
12345678910111213141516using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player p1= new Player(); p1.username = "Don"; Console.WriteLine(p1.username); } }
new Player(); という式は新しいオブジェクトの作成に使用され、Player p1 はその新しいオブジェクトを格納する変数の作成に使用されます。したがって、単に Player p1; と記述すると、オブジェクトが格納されていない空の変数だけが作成されます。そのため、新しいオブジェクトを作成し、それを変数に格納する必要があります:Player p1 = new Player();
同様に、10 クラスを使ってサイズが Player の配列を作成しても、10個のオブジェクトが作成されるわけではなく、10個の Player オブジェクトを格納できる容量を持つ空の配列が作成されます。これは次の例で理解できます。
index.cs
12345678910111213141516using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player[] players = new Player[10]; players[0].username = "Don"; // Error on this line Console.WriteLine(players[0].username); } }
エラーは「Object reference not set to an instance of an object」と表示されます。これは単純に、存在しないオブジェクトからデータにアクセスしようとしている、つまりインデックス 0 にアクセスできるオブジェクトが存在しないことを意味します。
この問題は、インデックス 0 に手動でオブジェクトを作成することで解決できます。
index.cs
12345678910111213141516using System; class Player { public string username; } public class ConsoleApp { public static void Main(string[] args) { Player[] players = new Player[10]; players[0] = new Player(); players[0].username = "Don"; Console.WriteLine(players[0].username); } }
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 4
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 3. 章 4