Sobes.tech
Junior

Was ist Methodenüberladung in C#?

sobes.tech KI

Antwort von AI

Method Overloading in C# ermöglicht es, mehrere Methoden in einer Klasse mit demselben Namen, aber unterschiedlichen Signaturen zu definieren.

Signatur der Methode umfasst:

  • Den Namen der Methode.
  • Die Anzahl und Typen der Parameter in der Parameterliste.

Nicht umfasst in der Signatur:

  • Den Rückgabetyp.
  • Parametermodifikatoren (z.B. ref, out).

Beispiel:

// Klasse mit überladenen Methoden
public class Calculator
{
    // Überladung 1: Addition von zwei Ganzzahlen
    public int Add(int a, int b)
    {
        return a + b;
    }

    // Überladung 2: Addition von zwei Gleitkommazahlen (andere Parametertypen)
    public double Add(double a, double b)
    {
        return a + b;
    }

    // Überladung 3: Addition von drei Ganzzahlen (andere Parameteranzahl)
    public int Add(int a, int b, int c)
    {
        return a + b + c;
    }

    // Das IST KEINE Überladung: Es unterscheidet sich nur durch den Rückgabetyp
    /*
    public double Add(int a, int b)
    {
        return (double)(a + b);
    }
    */
}

Der Compiler bestimmt, welcher Methode während der Kompilierung aufgerufen wird, basierend auf den Typen und der Anzahl der Argumente, die beim Aufruf übergeben werden. Dies ist bekannt als statische Bindung (Static Binding) oder frühe Bindung (Early Binding).

Vorteile der Methodensignaturüberladung:

  • Verbesserung der Lesbarkeit und Benutzerfreundlichkeit des Codes.
  • Darstellung ähnlicher Operationen unter einem Namen, aber für unterschiedliche Datentypen oder mit unterschiedlichen Eingabeargumenten.