Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Klassobjekt | Introduktion till Objektorienterad Programmering (OOP)
C# Bortom Grunderna

bookKlassobjekt

Ett objekt av en klass kan skapas med följande syntax:

index.cs

index.cs

copy
1
className variableName = new className();

Du kan komma åt ett fält i en klass med hjälp av punktoperatorn (.):

index.cs

index.cs

copy
1
variableName.fieldName

Till exempel:

index.cs

index.cs

copy
12345678910111213141516
using 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

index.cs

copy
12345678910111213141516
using 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

index.cs

copy
12345678910111213141516
using 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); } }
question mark

Vilken är den korrekta syntaxen för att skapa ett nytt objekt från en klass som heter Car?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

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

bookKlassobjekt

Svep för att visa menyn

Ett objekt av en klass kan skapas med följande syntax:

index.cs

index.cs

copy
1
className variableName = new className();

Du kan komma åt ett fält i en klass med hjälp av punktoperatorn (.):

index.cs

index.cs

copy
1
variableName.fieldName

Till exempel:

index.cs

index.cs

copy
12345678910111213141516
using 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

index.cs

copy
12345678910111213141516
using 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

index.cs

copy
12345678910111213141516
using 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); } }
question mark

Vilken är den korrekta syntaxen för att skapa ett nytt objekt från en klass som heter Car?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4
some-alt