Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Struktur-Konstruktoren | Strukturen & Aufzählungstypen
C# Jenseits der Grundlagen

bookStruktur-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

index.cs

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

Folgende Punkte sind bei der Syntax eines Konstruktors zu beachten:

  1. Der Konstruktorname ist identisch mit dem Strukturnamen;
  2. Ein Konstruktor hat keinen Rückgabewert.

Das folgende Programm zeigt, wie der Konstruktor immer dann aufgerufen wird, wenn ein Objekt erstellt wird:

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
Hinweis

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

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

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

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

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

index.cs

copy
123456
public 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

index.cs

copy
1
Coordinate3D 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

index.cs

copy
1
coord1.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.

question mark

Wann werden Konstruktoren aufgerufen?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 8

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

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

bookStruktur-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

index.cs

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

Folgende Punkte sind bei der Syntax eines Konstruktors zu beachten:

  1. Der Konstruktorname ist identisch mit dem Strukturnamen;
  2. Ein Konstruktor hat keinen Rückgabewert.

Das folgende Programm zeigt, wie der Konstruktor immer dann aufgerufen wird, wenn ein Objekt erstellt wird:

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
Hinweis

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

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

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

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

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

index.cs

copy
123456
public 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

index.cs

copy
1
Coordinate3D 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

index.cs

copy
1
coord1.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.

question mark

Wann werden Konstruktoren aufgerufen?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 8
some-alt