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!
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