Klassenobjekte
Ein Objekt einer Klasse kann mit folgender Syntax erstellt werden:
index.cs
1className variableName = new className();
Auf das Feld einer Klasse kann mit dem Punkt-Operator (.
) zugegriffen werden:
index.cs
1variableName.fieldName
Zum Beispiel:
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); } }
Der Ausdruck new Player();
wird verwendet, um ein neues Objekt zu erstellen, während Player p1
eine Variable zum Speichern dieses neuen Objekts deklariert. Das bloße Schreiben von Player p1;
erzeugt lediglich eine leere Variable ohne ein darin enthaltenes Objekt. Daher muss ein neues Objekt erstellt und anschließend in einer Variablen gespeichert werden: Player p1 = new Player();
.
Wenn ein Array der Größe 10
mit der Klasse Player
erstellt wird, werden dadurch nicht 10 Objekte erzeugt, sondern lediglich ein leeres Array mit der Kapazität, 10 Player-Objekte zu speichern. Dies lässt sich am folgenden Beispiel verdeutlichen:
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); } }
Die Fehlermeldung lautet "Object reference not set to an instance of an object", was einfach bedeutet, dass versucht wird, auf Daten eines Objekts zuzugreifen, das nicht existiert – es gibt kein Objekt am Index 0
, auf das zugegriffen werden kann.
Dieses Problem kann behoben werden, indem am Index 0
manuell ein Objekt erstellt wird:
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); } }
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain why creating an array of objects doesn't automatically create the objects themselves?
How do I initialize all elements in an array of objects?
What does "Object reference not set to an instance of an object" mean in simple terms?
Awesome!
Completion rate improved to 2.04
Klassenobjekte
Swipe um das Menü anzuzeigen
Ein Objekt einer Klasse kann mit folgender Syntax erstellt werden:
index.cs
1className variableName = new className();
Auf das Feld einer Klasse kann mit dem Punkt-Operator (.
) zugegriffen werden:
index.cs
1variableName.fieldName
Zum Beispiel:
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); } }
Der Ausdruck new Player();
wird verwendet, um ein neues Objekt zu erstellen, während Player p1
eine Variable zum Speichern dieses neuen Objekts deklariert. Das bloße Schreiben von Player p1;
erzeugt lediglich eine leere Variable ohne ein darin enthaltenes Objekt. Daher muss ein neues Objekt erstellt und anschließend in einer Variablen gespeichert werden: Player p1 = new Player();
.
Wenn ein Array der Größe 10
mit der Klasse Player
erstellt wird, werden dadurch nicht 10 Objekte erzeugt, sondern lediglich ein leeres Array mit der Kapazität, 10 Player-Objekte zu speichern. Dies lässt sich am folgenden Beispiel verdeutlichen:
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); } }
Die Fehlermeldung lautet "Object reference not set to an instance of an object", was einfach bedeutet, dass versucht wird, auf Daten eines Objekts zuzugreifen, das nicht existiert – es gibt kein Objekt am Index 0
, auf das zugegriffen werden kann.
Dieses Problem kann behoben werden, indem am Index 0
manuell ein Objekt erstellt wird:
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); } }
Danke für Ihr Feedback!