Klasse-objecten
Een object van een klasse kan worden aangemaakt met de volgende syntaxis:
index.cs
1className variableName = new className();
Het veld van een klasse kan worden benaderd met de punt (.) operator:
index.cs
1variableName.fieldName
Bijvoorbeeld:
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); } }
De expressie new Player(); wordt gebruikt om een nieuw object aan te maken, terwijl Player p1 wordt gebruikt om een variabele te maken waarin dat nieuwe object kan worden opgeslagen. Dus alleen Player p1; schrijven maakt enkel een lege variabele aan zonder dat er een object in zit; daarom moet je een nieuw object aanmaken en dit vervolgens in een variabele opslaan: Player p1 = new Player();.
Als je dus een Array van grootte 10 maakt met behulp van de Player-klasse, worden er niet 10 objecten aangemaakt, maar wordt er een lege array aangemaakt met een capaciteit om 10 Player-objecten op te slaan. Dit wordt verduidelijkt in het volgende voorbeeld:
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); } }
De foutmelding luidt "Object reference not set to an instance of an object", wat simpelweg betekent dat je probeert gegevens te benaderen van een object dat niet bestaat - er is geen object om te benaderen op index 0.
Dit kan worden opgelost door handmatig een object aan te maken op index 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); } }
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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
Klasse-objecten
Veeg om het menu te tonen
Een object van een klasse kan worden aangemaakt met de volgende syntaxis:
index.cs
1className variableName = new className();
Het veld van een klasse kan worden benaderd met de punt (.) operator:
index.cs
1variableName.fieldName
Bijvoorbeeld:
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); } }
De expressie new Player(); wordt gebruikt om een nieuw object aan te maken, terwijl Player p1 wordt gebruikt om een variabele te maken waarin dat nieuwe object kan worden opgeslagen. Dus alleen Player p1; schrijven maakt enkel een lege variabele aan zonder dat er een object in zit; daarom moet je een nieuw object aanmaken en dit vervolgens in een variabele opslaan: Player p1 = new Player();.
Als je dus een Array van grootte 10 maakt met behulp van de Player-klasse, worden er niet 10 objecten aangemaakt, maar wordt er een lege array aangemaakt met een capaciteit om 10 Player-objecten op te slaan. Dit wordt verduidelijkt in het volgende voorbeeld:
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); } }
De foutmelding luidt "Object reference not set to an instance of an object", wat simpelweg betekent dat je probeert gegevens te benaderen van een object dat niet bestaat - er is geen object om te benaderen op index 0.
Dit kan worden opgelost door handmatig een object aan te maken op index 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); } }
Bedankt voor je feedback!