Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Structconstructors | Structs & Enumerators
C# Verder dan de Basis

bookStructconstructors

Een constructor is een methode die automatisch wordt uitgevoerd wanneer een nieuw object wordt aangemaakt.

De syntaxis van een constructor lijkt enigszins op die van een methode, maar je laat eenvoudigweg het returnType weg omdat een constructor geen waarde retourneert:

index.cs

index.cs

copy
1234567891011
struct structureName { // ... fields (optional) public structureName(parameter1, parameter2, ...) { // code } // ... methods (optional) }

De volgende punten zijn belangrijk om te onthouden over de syntaxis van een constructor:

  1. De constructornaam is hetzelfde als de structuurnaam;
  2. Een constructor heeft geen returnwaarde.

Het volgende programma laat zien hoe de constructor wordt aangeroepen telkens wanneer een object wordt aangemaakt:

index.cs

index.cs

copy
12345678910111213141516171819
using System; struct Player { public Player() { Console.WriteLine($"New Player Object Created"); } } class Program { static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }
Note
Opmerking

Als u een C#-versie gebruikt die ouder is dan C# 10, kunt u een compileertijdfout krijgen. Het wordt aanbevolen om C# 10 of een latere versie te gebruiken. Als u niet wilt overstappen op een nieuwere versie, is het belangrijk op te merken dat het gebruik van constructors beperkter zal zijn. U kunt bijvoorbeeld geen parameterloze constructor maken in oudere versies.

Voeg een veld toe aan Player genaamd id, dat een unieke identificatie van dat object zal zijn zodat elk object een andere waarde voor id heeft. Het begint bij 0 en wordt opgehoogd. Om dit te bereiken moet u een globale variabele aanmaken genaamd totalPlayers.

index.cs

index.cs

copy
12345678910111213141516171819202122232425262728
using System; class ConsoleApp { // We use the term 'static' when declaring variables directly under class // This will be explained in much more detail in later sections. public static int totalPlayers = 0; // This time we create put the struct inside the `ConsoleApp` class // This is to be able to use the `totalPlayers` variable easily. struct Player { public int id; public Player() { id = totalPlayers++; Console.WriteLine($"New Player Object Created With ID {id}"); } } static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }

In de bovenstaande code is de struct binnen de Program-klasse geplaatst om toegang te krijgen tot de variabele 'totalPlayers' vanuit de constructor.

Gegevens kunnen aan een constructor worden doorgegeven bij het aanmaken van een nieuw object met de volgende syntaxis:

structureName variableName = new structureName(argument1, argument2, …);

Hieronder volgt een praktisch voorbeeld van het gebruik:

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829
using System; struct Coordinate3D { public double x; public double y; public double z; public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } public void displayValue() { Console.WriteLine($"{this.x}, {this.y}, {this.z}"); } } class ConsoleApp { static void Main(string[] args) { Coordinate3D coord1 = new Coordinate3D(3, 5, 7); coord1.displayValue(); } }

Laten we de code stap voor stap bekijken.

Eerst is er een constructor aangemaakt en binnen deze constructor zijn de doorgegeven waarden x, y, z toegewezen aan de velden x, y en z:

index.cs

index.cs

copy
123456
public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; }

Binnen de methode Main is een nieuw Coordinate3D-object aangemaakt en zijn 3, 5 en 7 als x, y en z via de constructor doorgegeven.

index.cs

index.cs

copy
1
Coordinate3D coord1 = new Coordinate3D(3, 5, 7);

Om te bevestigen of de velden succesvol zijn geïnitialiseerd door de constructor, werd de methode displayValue gebruikt:

index.cs

index.cs

copy
1
coord1.displayValue();

De uitvoer bewees dat de velden succesvol zijn bijgewerkt.

Constructors zijn zeer nuttig wanneer je objecten wilt initialiseren met bepaalde gegevens of om enkele initiële bewerkingen uit te voeren wanneer een object wordt aangemaakt.

question mark

Wanneer worden constructors aangeroepen?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 8

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain more about how constructors work in different programming languages?

What happens if I don't define a constructor in my structure or class?

Can you show an example of using multiple constructors with different parameters?

Awesome!

Completion rate improved to 2.04

bookStructconstructors

Veeg om het menu te tonen

Een constructor is een methode die automatisch wordt uitgevoerd wanneer een nieuw object wordt aangemaakt.

De syntaxis van een constructor lijkt enigszins op die van een methode, maar je laat eenvoudigweg het returnType weg omdat een constructor geen waarde retourneert:

index.cs

index.cs

copy
1234567891011
struct structureName { // ... fields (optional) public structureName(parameter1, parameter2, ...) { // code } // ... methods (optional) }

De volgende punten zijn belangrijk om te onthouden over de syntaxis van een constructor:

  1. De constructornaam is hetzelfde als de structuurnaam;
  2. Een constructor heeft geen returnwaarde.

Het volgende programma laat zien hoe de constructor wordt aangeroepen telkens wanneer een object wordt aangemaakt:

index.cs

index.cs

copy
12345678910111213141516171819
using System; struct Player { public Player() { Console.WriteLine($"New Player Object Created"); } } class Program { static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }
Note
Opmerking

Als u een C#-versie gebruikt die ouder is dan C# 10, kunt u een compileertijdfout krijgen. Het wordt aanbevolen om C# 10 of een latere versie te gebruiken. Als u niet wilt overstappen op een nieuwere versie, is het belangrijk op te merken dat het gebruik van constructors beperkter zal zijn. U kunt bijvoorbeeld geen parameterloze constructor maken in oudere versies.

Voeg een veld toe aan Player genaamd id, dat een unieke identificatie van dat object zal zijn zodat elk object een andere waarde voor id heeft. Het begint bij 0 en wordt opgehoogd. Om dit te bereiken moet u een globale variabele aanmaken genaamd totalPlayers.

index.cs

index.cs

copy
12345678910111213141516171819202122232425262728
using System; class ConsoleApp { // We use the term 'static' when declaring variables directly under class // This will be explained in much more detail in later sections. public static int totalPlayers = 0; // This time we create put the struct inside the `ConsoleApp` class // This is to be able to use the `totalPlayers` variable easily. struct Player { public int id; public Player() { id = totalPlayers++; Console.WriteLine($"New Player Object Created With ID {id}"); } } static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); Player player3 = new Player(); } }

In de bovenstaande code is de struct binnen de Program-klasse geplaatst om toegang te krijgen tot de variabele 'totalPlayers' vanuit de constructor.

Gegevens kunnen aan een constructor worden doorgegeven bij het aanmaken van een nieuw object met de volgende syntaxis:

structureName variableName = new structureName(argument1, argument2, …);

Hieronder volgt een praktisch voorbeeld van het gebruik:

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829
using System; struct Coordinate3D { public double x; public double y; public double z; public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } public void displayValue() { Console.WriteLine($"{this.x}, {this.y}, {this.z}"); } } class ConsoleApp { static void Main(string[] args) { Coordinate3D coord1 = new Coordinate3D(3, 5, 7); coord1.displayValue(); } }

Laten we de code stap voor stap bekijken.

Eerst is er een constructor aangemaakt en binnen deze constructor zijn de doorgegeven waarden x, y, z toegewezen aan de velden x, y en z:

index.cs

index.cs

copy
123456
public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; }

Binnen de methode Main is een nieuw Coordinate3D-object aangemaakt en zijn 3, 5 en 7 als x, y en z via de constructor doorgegeven.

index.cs

index.cs

copy
1
Coordinate3D coord1 = new Coordinate3D(3, 5, 7);

Om te bevestigen of de velden succesvol zijn geïnitialiseerd door de constructor, werd de methode displayValue gebruikt:

index.cs

index.cs

copy
1
coord1.displayValue();

De uitvoer bewees dat de velden succesvol zijn bijgewerkt.

Constructors zijn zeer nuttig wanneer je objecten wilt initialiseren met bepaalde gegevens of om enkele initiële bewerkingen uit te voeren wanneer een object wordt aangemaakt.

question mark

Wanneer worden constructors aangeroepen?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 8
some-alt