Kursinhalt
C# Über die Grundlagen Hinaus
C# Über die Grundlagen Hinaus
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:
index
struct structureName { // ... fields (optional) public structureName(parameter1, parameter2, ...) { // code } // ... methods (optional) }
Die folgenden Punkte sind wichtig, um die Syntax des Konstruktors zu beachten:
- Der Konstruktorname ist derselbe wie der Strukturname.
- Ein Konstruktor hat keinen Rückgabewert.
Das folgende Programm zeigt, wie der Konstruktor aufgerufen wird, wann immer ein Objekt erstellt wird:
index
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
.
index
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:
index
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:
index
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.
index
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:
index
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.
Danke für Ihr Feedback!