Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

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.

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

  1. C# Konstruktoren: Typen, Beispiele und fortgeschrittene Muster
  2. C# Geschachtelte Klassen verstehen: Definition, Verwendung und Vererbung
  3. Methodenüberladung in C# meistern: Konzepte, Beispiele und Best Practices
  4. Operator Overloading in Python meistern: Ein praktischer Leitfaden
  5. Java Konstruktoren meistern: Typen, Verwendung und praktische Beispiele
  6. Java Enum-Konstruktoren erklärt mit praktischem Beispiel
  7. Kfz-Motorkühlmittel verstehen: Zweck, Typen und Wartung
  8. C++ Operator‑Overloading: Praktischer Leitfaden mit Code‑Beispielen
  9. Konstruktor-Überladung in Java – Erklärt mit praktischen Code-Beispielen
  10. Java Konstruktoren verstehen: Initialisierung und Best Practices