Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ クラスオブジェクト | オブジェクト指向プログラミング(OOP)イントロダクション
C#オブジェクト指向構造

bookクラスオブジェクト

メニューを表示するにはスワイプしてください

クラスのオブジェクトは、次の構文を使用して作成可能:

index.cs

index.cs

copy
1
className variableName = new className();

クラスのフィールドには、ドット(.)演算子を使用してアクセス可能:

index.cs

index.cs

copy
1
variableName.fieldName

例えば:

index.cs

index.cs

copy
12345678910111213141516
using 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

index.cs

copy
12345678910111213141516
using 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

index.cs

copy
12345678910111213141516
using 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); } }
question mark

Car というクラスから新しいオブジェクトを作成する正しい構文はどれですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  4

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  4
some-alt