TOC

This article has been localized into German by the community.

Klassen:

Überladung von Methoden

Viele Programmiersprachen unterstützen eine Technik namens Standard/optionale Parameter. Es erlaubt dem Programmierer, einen oder mehrere Parameter optional zu machen, indem er ihnen einen Standardwert gibt. Dies ist besonders praktisch, wenn Sie vorhandenen Code um Funktionen erweitern.

Beispielsweise möchten Sie möglicherweise einer vorhandenen Funktion eine Funktionalität hinzufügen, für die mindestens ein Parameter hinzugefügt werden muss. Auf diese Weise würden Sie bestehenden Code, der diese Funktion aufruft, unterbrechen, da sie jetzt nicht die erforderliche Menge an Parametern übergeben würden. Um dies zu umgehen, könnten Sie die neu hinzugefügten Parameter als optional definieren und ihnen einen Standardwert zuweisen, der der Funktionsweise des Codes vor dem Hinzufügen der Parameter entspricht.

Standard-Parameter wurden in C# in der Version 4.0 eingeführt, aber bis jetzt verwenden C#-Codierer eine andere Technik, die im Grunde dasselbe tut, das Überladen der Methode genannt wird. Es erlaubt dem Programmierer, mehrere Methoden mit demselben Namen zu definieren, solange sie einen anderen Parametersatz verwenden. Wenn Sie die Klassen des .NET-Frameworks verwenden, werden Sie schnell erkennen, dass das Überladen von Methoden überall verwendet wird. Ein gutes Beispiel dafür ist die Substring() -Methode der String-Klasse. Sie ist mit einer zusätzlichen Überladung, wie folgt:

string Substring (int startIndex)
string Substring (int startIndex, int length)

Sie können sie mit einem oder zwei Parametern aufrufen. Wenn Sie sie nur mit einem Parameter aufrufen, wird angenommen, dass der Parameter length der Rest des Strings ist, was uns Zeit spart, wenn wir einfach den letzten Teil eines Strings erhalten wollen.

Wenn wir also mehrere Versionen derselben Funktion definieren, wie vermeiden wir es, an mehreren Stellen den gleichen Code zu haben? Es ist eigentlich ziemlich einfach: Wir sorgen dafür, dass die einfachen Versionen der Methode die komplexe Version die ganze Arbeit machen lassen. Betrachten Sie das folgende Beispiel:

class SillyMath
{
    public static int Plus(int number1, int number2)
    {
        return Plus(number1, number2, 0);
    }

    public static int Plus(int number1, int number2, int number3)
    {
        return number1 + number2 + number3;
    }
}

Wir definieren eine Plus-Methode in zwei verschiedenen Versionen. Der erste nimmt zwei Parameter, um zwei Zahlen hinzuzufügen, während der zweite drei Zahlen benötigt. Die eigentliche Arbeit wird in der Version ausgeführt, die drei Zahlen benötigt - wenn wir nur zwei hinzufügen möchten, nennen wir die Version mit drei Parametern und verwenden einfach 0 als dritten Parameter, der als Standardwert fungiert. Ich weiß schon, es ist ein dummes Beispiel, wie der Name der Klasse zeigt, aber es sollte Ihnen einen Eindruck vermitteln, wie alles funktioniert.

Nun, wann immer Sie fortgeschrittene Mathe machen wollen, indem Sie insgesamt vier Zahlen hinzufügen (nein nein, ich scherze nur), ist es sehr einfach, eine neue Überladung hinzuzufügen:

class SillyMath
{
    public static int Plus(int number1, int number2)
    {
        return Plus(number1, number2, 0);
    }

    public static int Plus(int number1, int number2, int number3)
    {
        return Plus(number1, number2, number3, 0);
    }

    public static int Plus(int number1, int number2, int number3, int number4)
    {
        return number1 + number2 + number3 + number4;
    }
}

Das Tolle daran ist, dass alle Ihre bestehenden Anrufe bei der Plus-Methode weiter funktionieren, als ob nichts geändert worden wäre. Je mehr Sie C# verwenden, desto mehr lernen Sie das Überladen von Methoden zu schätzen.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!