Klasseobjekter
Et objekt af en klasse kan oprettes ved hjælp af følgende syntaks:
index.cs
1className variableName = new className();
Du kan få adgang til et felt i en klasse ved at bruge punktum (.
) operatoren:
index.cs
1variableName.fieldName
For eksempel:
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); } }
Udtrykket new Player();
bruges til at oprette et nyt objekt, mens Player p1
bruges til at oprette en variabel til at gemme det nye objekt. Hvis du blot skriver Player p1;
, oprettes kun en tom variabel uden noget objekt indeni, derfor skal du oprette et nyt objekt og gemme det i en variabel: Player p1 = new Player();
.
Hvis du derfor opretter et array med størrelsen 10
ved hjælp af Player
-klassen, oprettes der ikke 10 objekter, men derimod et tomt array med kapacitet til at gemme 10 Player-objekter. Dette kan illustreres med følgende eksempel:
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); } }
Fejlmeddelelsen siger "Object reference not set to an instance of an object", hvilket blot betyder, at du forsøger at tilgå data fra et objekt, der ikke eksisterer – der er intet objekt at tilgå på indeks 0
.
Dette kan løses ved manuelt at oprette et objekt på indeks 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); } }
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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
Klasseobjekter
Stryg for at vise menuen
Et objekt af en klasse kan oprettes ved hjælp af følgende syntaks:
index.cs
1className variableName = new className();
Du kan få adgang til et felt i en klasse ved at bruge punktum (.
) operatoren:
index.cs
1variableName.fieldName
For eksempel:
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); } }
Udtrykket new Player();
bruges til at oprette et nyt objekt, mens Player p1
bruges til at oprette en variabel til at gemme det nye objekt. Hvis du blot skriver Player p1;
, oprettes kun en tom variabel uden noget objekt indeni, derfor skal du oprette et nyt objekt og gemme det i en variabel: Player p1 = new Player();
.
Hvis du derfor opretter et array med størrelsen 10
ved hjælp af Player
-klassen, oprettes der ikke 10 objekter, men derimod et tomt array med kapacitet til at gemme 10 Player-objekter. Dette kan illustreres med følgende eksempel:
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); } }
Fejlmeddelelsen siger "Object reference not set to an instance of an object", hvilket blot betyder, at du forsøger at tilgå data fra et objekt, der ikke eksisterer – der er intet objekt at tilgå på indeks 0
.
Dette kan løses ved manuelt at oprette et objekt på indeks 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); } }
Tak for dine kommentarer!