Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Strukturkonstruktoren | Strukturen & Enumeratoren
C# Über die Grundlagen Hinaus
course content

Kursinhalt

C# Über die Grundlagen Hinaus

C# Über die Grundlagen Hinaus

1. Zusätzliche Strukturen & Dateiverarbeitung
2. Strukturen & Enumeratoren
3. Einführung in die Objektorientierte Programmierung (OOP)
4. OOP Essentials
5. OOP-Prinzipien

book
Strukturkonstruktoren

Ein Konstruktor ist eine Methode, die automatisch ausgeführt wird, wenn ein neues Objekt erstellt wird.

Die Syntax eines Konstruktors ist der einer Methode etwas ähnlich, wir lassen einfach den Rückgabetyp weg, da ein Konstruktor keinen Wert zurückgibt:

cs

index

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

Die folgenden Punkte sind wichtig, um die Syntax des Konstruktors zu beachten:

  1. Der Konstruktorname ist derselbe wie der Strukturname.
  2. Ein Konstruktor hat keinen Rückgabewert.

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

cs

index

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

Fügen wir dem Player ein Feld namens id hinzu, das eine eindeutige Kennung dieses Objekts sein wird, sodass jedes Objekt einen anderen Wert für id hat. Es wird bei 0 beginnen und sich erhöhen. Um dies zu erreichen, erstellen wir eine globale Variable namens totalPlayers.

cs

index

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 haben wir die Struktur in die Program-Klasse eingefügt, um auf die Variable 'totalPlayers' von innerhalb des Konstruktors zugreifen zu können.

Wir können Daten in einen Konstruktor übergeben, wenn wir ein neues Objekt mit der folgenden Syntax erstellen:

Im Folgenden ein praktisches Beispiel für die Verwendung:

cs

index

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

Schauen wir uns den Code Schritt für Schritt an.

Zuerst haben wir einen Konstruktor erstellt und innerhalb des Konstruktors die übergebenen Werte x, y, z den Feldern x, y und z zugewiesen:

cs

index

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

Innerhalb der Main-Methode haben wir ein neues Coordinate3D-Objekt erstellt und 3, 5 und 7 als x, y und z durch den Konstruktor übergeben.

cs

index

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

Um zu bestätigen, ob die Felder erfolgreich vom Konstruktor initiiert wurden oder nicht, haben wir die displayValue-Methode verwendet:

cs

index

copy
1
coord1.displayValue();

Die Ausgabe bewies, dass die Felder erfolgreich aktualisiert wurden.

Die Konstruktoren sind sehr nützlich, wenn wir Objekte mit einigen Daten initialisieren oder einige Anfangsoperationen durchführen möchten, wenn ein Objekt erstellt wird.

Wann werden Konstruktoren aufgerufen?

Wann werden Konstruktoren aufgerufen?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 8
We're sorry to hear that something went wrong. What happened?
some-alt