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!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen