Structconstructors
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
1234567891011struct structureName { // ... fields (optional) public structureName(parameter1, parameter2, ...) { // code } // ... methods (optional) }
De volgende punten zijn belangrijk om te onthouden over de syntaxis van een constructor:
- De constructornaam is hetzelfde als de structuurnaam;
- Een constructor heeft geen returnwaarde.
Het volgende programma laat zien hoe de constructor wordt aangeroepen telkens wanneer een object wordt aangemaakt:
index.cs
12345678910111213141516171819using 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(); } }
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
12345678910111213141516171819202122232425262728using 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
1234567891011121314151617181920212223242526272829using 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
123456public 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
1Coordinate3D 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
1coord1.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.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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
Structconstructors
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
1234567891011struct structureName { // ... fields (optional) public structureName(parameter1, parameter2, ...) { // code } // ... methods (optional) }
De volgende punten zijn belangrijk om te onthouden over de syntaxis van een constructor:
- De constructornaam is hetzelfde als de structuurnaam;
- Een constructor heeft geen returnwaarde.
Het volgende programma laat zien hoe de constructor wordt aangeroepen telkens wanneer een object wordt aangemaakt:
index.cs
12345678910111213141516171819using 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(); } }
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
12345678910111213141516171819202122232425262728using 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
1234567891011121314151617181920212223242526272829using 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
123456public 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
1Coordinate3D 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
1coord1.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.
Bedankt voor je feedback!