Klassobjekt
Svep för att visa menyn
Ett objekt av en klass kan skapas med följande syntax:
index.cs
1className variableName = new className();
Du kan komma åt ett fält i en klass med hjälp av punktoperatorn (.):
index.cs
1variableName.fieldName
Till exempel:
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); } }
Uttrycket new Player(); används för att skapa ett nytt objekt, medan Player p1 används för att skapa en variabel för att lagra det nya objektet. Att enbart skriva Player p1; skapar alltså endast en tom variabel utan något objekt i, därför måste du skapa ett nytt objekt och lagra det i variabeln: Player p1 = new Player();.
Om du skapar en array av storlek 10 med hjälp av klassen Player, kommer det inte att skapa 10 objekt, utan det skapas en tom array med kapacitet att lagra 10 Player-objekt. Detta kan illustreras med följande exempel:
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); } }
Felet säger "Object reference not set to an instance of an object", vilket helt enkelt betyder att du försöker komma åt data från ett objekt som inte finns – det finns inget objekt att komma åt på index 0.
Detta kan åtgärdas genom att manuellt skapa ett objekt på 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); } }
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal