Klasseobjekter
Et objekt av en klasse kan opprettes ved å bruke følgende syntaks:
index.cs
1className variableName = new className();
Du kan få tilgang til et felt i en klasse ved å bruke punktumoperatoren (.
):
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); } }
Uttrykket new Player();
brukes for å opprette et nytt objekt, mens Player p1
brukes for å opprette en variabel for å lagre det nye objektet. Å kun skrive Player p1;
vil derfor bare opprette en tom variabel uten noe objekt inni, så du må opprette et nytt objekt og deretter lagre det i en variabel: Player p1 = new Player();
.
Hvis du dermed oppretter et array med størrelse 10
ved å bruke Player
-klassen, vil det ikke opprette 10 objekter, men heller et tomt array med kapasitet til å lagre 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); } }
Feilmeldingen sier "Object reference not set to an instance of an object", som ganske enkelt betyr at du prøver å få tilgang til data fra et objekt som ikke finnes – det er ikke noe objekt å få tilgang til på indeks 0
.
Dette kan løses ved å manuelt opprette 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); } }
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Sveip for å vise menyen
Et objekt av en klasse kan opprettes ved å bruke følgende syntaks:
index.cs
1className variableName = new className();
Du kan få tilgang til et felt i en klasse ved å bruke punktumoperatoren (.
):
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); } }
Uttrykket new Player();
brukes for å opprette et nytt objekt, mens Player p1
brukes for å opprette en variabel for å lagre det nye objektet. Å kun skrive Player p1;
vil derfor bare opprette en tom variabel uten noe objekt inni, så du må opprette et nytt objekt og deretter lagre det i en variabel: Player p1 = new Player();
.
Hvis du dermed oppretter et array med størrelse 10
ved å bruke Player
-klassen, vil det ikke opprette 10 objekter, men heller et tomt array med kapasitet til å lagre 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); } }
Feilmeldingen sier "Object reference not set to an instance of an object", som ganske enkelt betyr at du prøver å få tilgang til data fra et objekt som ikke finnes – det er ikke noe objekt å få tilgang til på indeks 0
.
Dette kan løses ved å manuelt opprette 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); } }
Takk for tilbakemeldingene dine!