Konstruktorüberladung in C# meistern
Konstruktorüberladung in C# meistern
Entdecken Sie, wie Sie flexible Klassen in C# durch Überladen von Konstruktoren gestalten – Variation von Parameteranzahl, Typen und Reihenfolge – mit praktischen Beispielen.
Konstruktorüberladung in C# spiegelt die Methodenüberladung wider: Eine Klasse kann mehrere Konstruktoren deklarieren, die denselben Namen teilen, sich aber in der Signatur unterscheiden. Der Compiler wählt den passenden Konstruktor basierend auf den Argumenten, die bei der Objekterstellung übergeben werden.
- Verschiedene Anzahl von Parametern
- Verschiedene Parametertypen
- Verschiedene Parameterreihenfolge
Bevor Sie in die Überladung eintauchen, stellen Sie sicher, dass Sie grundlegende C#-Konstruktoren verstehen.
1. Variation der Parameteranzahl
Sie können einen Konstruktor überladen, indem Sie unterschiedliche Anzahlen an Argumenten bereitstellen.
class Car
{
// Parameterloser Konstruktor
Car() { ... }
// Ein-Parameter-Konstruktor
Car(string brand) { ... }
// Zwei-Parameter-Konstruktor
Car(string brand, int price) { ... }
}
In dieser Car-Class koexistieren die drei Konstruktoren, da jede Signatur eindeutig ist. Der Compiler wählt zur Laufzeit den passenden Konstruktor basierend auf der Argumentanzahl.
Beispiel: Überladung nach Parameteranzahl
using System;
namespace ConstructorOverload
{
class Car
{
// Parameterloser Konstruktor
Car()
{
Console.WriteLine("Auto-Konstruktor");
}
// Ein-Parameter-Konstruktor
Car(string brand)
{
Console.WriteLine("Auto-Konstruktor mit einem Parameter");
Console.WriteLine("Marke: " + brand);
}
static void Main(string[] args)
{
// Ruft parameterlosen Konstruktor auf
Car car = new Car();
Console.WriteLine();
// Ruft Ein-Parameter-Konstruktor auf
Car car2 = new Car("Bugatti");
Console.ReadLine();
}
}
}
Ausgabe
Auto-Konstruktor Auto-Konstruktor mit einem Parameter Marke: Bugatti
Der Compiler ruft den passenden Konstruktor basierend auf den bereitgestellten Argumenten auf.
2. Unterschiedliche Parametertypen
Konstruktoren können auch überladen werden, wenn sie dieselbe Anzahl an Parametern, aber unterschiedliche Typen akzeptieren.
class Car
{
Car(string brand) { ... }
Car(int price) { ... }
}
Hier akzeptieren beide Konstruktoren ein einzelnes Argument, doch die Typen – string versus int – unterscheiden sie.
Beispiel: Überladung nach Parametertyp
using System;
namespace ConstructorOverload
{
class Car
{
// Konstruktor mit string
Car(string brand)
{
Console.WriteLine("Marke: " + brand);
}
// Konstruktor mit int
Car(int price)
{
Console.WriteLine("Preis: " + price);
}
static void Main(string[] args)
{
Car car = new Car("Lamborghini");
Console.WriteLine();
Car car2 = new Car(50000);
Console.ReadLine();
}
}
}
Ausgabe
Marke: Lamborghini Preis: 50000
3. Parameterreihenfolge ändern
Wenn Konstruktoren dieselbe Anzahl und Typen von Parametern haben, können Sie dennoch durch Umstellen der Reihenfolge überladen.
class Car
{
Car(string brand, int price) { ... }
Car(int speed, string color) { ... }
}
Die Signaturen unterscheiden sich, weil die Sequenz der Typen verschieden ist.
Beispiel: Überladung nach Parameterreihenfolge
using System;
namespace ConstructorOverload
{
class Car
{
// Erst string, dann int
Car(string brand, int price)
{
Console.WriteLine("Marke: " + brand);
Console.WriteLine("Preis: " + price);
}
// Erst int, dann string
Car(int speed, string color)
{
Console.WriteLine("Geschwindigkeit: " + speed + " km/h");
Console.WriteLine("Farbe: " + color);
}
static void Main(string[] args)
{
Car car = new Car("Bugatti", 50000);
Console.WriteLine();
Car car2 = new Car(60, "Rot");
Console.ReadLine();
}
}
}
Ausgabe
Marke: Bugatti Preis: 50000 Geschwindigkeit: 60 km/h Farbe: Rot
C Sprache
- C# Konstruktoren: Typen, Beispiele und fortgeschrittene Muster
- C# Geschachtelte Klassen verstehen: Definition, Verwendung und Vererbung
- Methodenüberladung in C# meistern: Konzepte, Beispiele und Best Practices
- Operator Overloading in Python meistern: Ein praktischer Leitfaden
- Java Konstruktoren meistern: Typen, Verwendung und praktische Beispiele
- Java Enum-Konstruktoren erklärt mit praktischem Beispiel
- Kfz-Motorkühlmittel verstehen: Zweck, Typen und Wartung
- C++ Operator‑Overloading: Praktischer Leitfaden mit Code‑Beispielen
- Konstruktor-Überladung in Java – Erklärt mit praktischen Code-Beispielen
- Java Konstruktoren verstehen: Initialisierung und Best Practices