Struktur-Konstruktoren
Ein Konstruktor ist eine Methode, die automatisch ausgeführt wird, wenn ein neues Objekt erstellt wird.
Die Syntax eines Konstruktors ähnelt der einer Methode, jedoch wird der Rückgabewert weggelassen, da ein Konstruktor keinen Wert zurückgibt:
index.cs
1234567891011struct structureName { // ... fields (optional) public structureName(parameter1, parameter2, ...) { // code } // ... methods (optional) }
Folgende Punkte sind bei der Syntax eines Konstruktors zu beachten:
- Der Konstruktorname ist identisch mit dem Strukturnamen;
- Ein Konstruktor hat keinen Rückgabewert.
Das folgende Programm zeigt, wie der Konstruktor immer dann aufgerufen wird, wenn ein Objekt erstellt wird:
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(); } }
Falls Sie eine C#-Version älter als C# 10
verwenden, kann ein Kompilierungsfehler auftreten. Es wird empfohlen, C# 10
oder eine neuere Version zu verwenden. Wenn Sie nicht auf eine neuere Version umsteigen möchten, ist es wichtig zu beachten, dass die Verwendung von Konstruktoren stärker eingeschränkt ist. Zum Beispiel kann in älteren Versionen kein parameterloser Konstruktor erstellt werden.
Fügen wir dem Player
ein Feld namens id
hinzu, das als eindeutiger Bezeichner für dieses Objekt dient, sodass jedes Objekt einen anderen Wert für id
erhält. Es beginnt bei 0
und wird inkrementiert. Um dies zu erreichen, muss eine globale Variable namens totalPlayers
erstellt werden.
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(); } }
Im obigen Code wurde die Struktur innerhalb der Program
-Klasse platziert, um auf die Variable 'totalPlayers' aus dem Konstruktor heraus zugreifen zu können.
Daten können beim Erstellen eines neuen Objekts mit folgendem Syntax an einen Konstruktor übergeben werden:
structureName variableName = new structureName(argument1, argument2, …);
Nachfolgend ein praktisches Beispiel für die Verwendung:
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(); } }
Betrachten wir den Code Schritt für Schritt.
Zuerst wurde ein Konstruktor erstellt und innerhalb des Konstruktors wurden die übergebenen Werte x
, y
, z
den Feldern x
, y
und z
zugewiesen:
index.cs
123456public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; }
Innerhalb der Methode Main
wurde ein neues Coordinate3D
-Objekt erstellt und 3
, 5
sowie 7
als x
, y
und z
über den Konstruktor übergeben.
index.cs
1Coordinate3D coord1 = new Coordinate3D(3, 5, 7);
Um zu überprüfen, ob die Felder erfolgreich durch den Konstruktor initialisiert wurden, wurde die Methode displayValue
verwendet:
index.cs
1coord1.displayValue();
Die Ausgabe zeigte, dass die Felder erfolgreich aktualisiert wurden.
Konstruktoren sind sehr nützlich, wenn Objekte mit bestimmten Daten initialisiert werden sollen oder um einige Anfangsoperationen beim Erstellen eines Objekts durchzuführen.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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
Struktur-Konstruktoren
Swipe um das Menü anzuzeigen
Ein Konstruktor ist eine Methode, die automatisch ausgeführt wird, wenn ein neues Objekt erstellt wird.
Die Syntax eines Konstruktors ähnelt der einer Methode, jedoch wird der Rückgabewert weggelassen, da ein Konstruktor keinen Wert zurückgibt:
index.cs
1234567891011struct structureName { // ... fields (optional) public structureName(parameter1, parameter2, ...) { // code } // ... methods (optional) }
Folgende Punkte sind bei der Syntax eines Konstruktors zu beachten:
- Der Konstruktorname ist identisch mit dem Strukturnamen;
- Ein Konstruktor hat keinen Rückgabewert.
Das folgende Programm zeigt, wie der Konstruktor immer dann aufgerufen wird, wenn ein Objekt erstellt wird:
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(); } }
Falls Sie eine C#-Version älter als C# 10
verwenden, kann ein Kompilierungsfehler auftreten. Es wird empfohlen, C# 10
oder eine neuere Version zu verwenden. Wenn Sie nicht auf eine neuere Version umsteigen möchten, ist es wichtig zu beachten, dass die Verwendung von Konstruktoren stärker eingeschränkt ist. Zum Beispiel kann in älteren Versionen kein parameterloser Konstruktor erstellt werden.
Fügen wir dem Player
ein Feld namens id
hinzu, das als eindeutiger Bezeichner für dieses Objekt dient, sodass jedes Objekt einen anderen Wert für id
erhält. Es beginnt bei 0
und wird inkrementiert. Um dies zu erreichen, muss eine globale Variable namens totalPlayers
erstellt werden.
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(); } }
Im obigen Code wurde die Struktur innerhalb der Program
-Klasse platziert, um auf die Variable 'totalPlayers' aus dem Konstruktor heraus zugreifen zu können.
Daten können beim Erstellen eines neuen Objekts mit folgendem Syntax an einen Konstruktor übergeben werden:
structureName variableName = new structureName(argument1, argument2, …);
Nachfolgend ein praktisches Beispiel für die Verwendung:
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(); } }
Betrachten wir den Code Schritt für Schritt.
Zuerst wurde ein Konstruktor erstellt und innerhalb des Konstruktors wurden die übergebenen Werte x
, y
, z
den Feldern x
, y
und z
zugewiesen:
index.cs
123456public Coordinate3D(double x, double y, double z) { this.x = x; this.y = y; this.z = z; }
Innerhalb der Methode Main
wurde ein neues Coordinate3D
-Objekt erstellt und 3
, 5
sowie 7
als x
, y
und z
über den Konstruktor übergeben.
index.cs
1Coordinate3D coord1 = new Coordinate3D(3, 5, 7);
Um zu überprüfen, ob die Felder erfolgreich durch den Konstruktor initialisiert wurden, wurde die Methode displayValue
verwendet:
index.cs
1coord1.displayValue();
Die Ausgabe zeigte, dass die Felder erfolgreich aktualisiert wurden.
Konstruktoren sind sehr nützlich, wenn Objekte mit bestimmten Daten initialisiert werden sollen oder um einige Anfangsoperationen beim Erstellen eines Objekts durchzuführen.
Danke für Ihr Feedback!