Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Klasseobjekter | Introduksjon til Objektorientert Programmering (OOP)
C# Utover Det Grunnleggende

bookKlasseobjekter

Et objekt av en klasse kan opprettes ved å bruke følgende syntaks:

index.cs

index.cs

copy
1
className variableName = new className();

Du kan få tilgang til et felt i en klasse ved å bruke punktumoperatoren (.):

index.cs

index.cs

copy
1
variableName.fieldName

For eksempel:

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); } }

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

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); } }

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

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

Hva er riktig syntaks for å opprette et nytt objekt fra en klasse kalt Car?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookKlasseobjekter

Sveip for å vise menyen

Et objekt av en klasse kan opprettes ved å bruke følgende syntaks:

index.cs

index.cs

copy
1
className variableName = new className();

Du kan få tilgang til et felt i en klasse ved å bruke punktumoperatoren (.):

index.cs

index.cs

copy
1
variableName.fieldName

For eksempel:

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); } }

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

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); } }

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

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

Hva er riktig syntaks for å opprette et nytt objekt fra en klasse kalt Car?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 4
some-alt