Overloads

Aktualisiert: November 2007

Gibt an, dass eine Eigenschaft oder eine Prozedur eine oder mehrere vorhandene Eigenschaften oder Prozeduren mit dem gleichen Namen neu deklariert.

Hinweise

Als Überladen wird die Bereitstellung von mehreren Definitionen für eine bestimmte Eigenschaft oder Prozedur in demselben Gültigkeitsbereich bezeichnet. Das erneute Deklarieren einer Eigenschaft oder Prozedur mit einer anderen Signatur wird gelegentlich als Ausblenden durch Signatur bezeichnet.

Regeln

  • Deklarationskontext. Sie können Overloads nur in einer Deklarationsanweisung für eine Eigenschaft oder Prozedur verwenden.

  • **Kombinierte Modifizierer.**Overloads und Shadows können nicht in derselben Prozedurdeklaration verwendet werden.

  • Erforderliche Unterschiede. Die Signatur in dieser Deklaration muss sich von der Signatur jeder Eigenschaft oder Prozedur unterscheiden, die von ihr überladen wird. Die Signatur umfasst den Namen der Eigenschaft oder Prozedur sowie Folgendes:

    • Anzahl der Parameter

    • Reihenfolge der Parameter

    • Datentypen der Parameter

    • Anzahl der Typparameter (bei einer generischen Prozedur)

    • Rückgabetyp (nur bei einer Konvertierungsoperatorprozedur)

    Alle Überladungen müssen denselben Namen haben, jede Überladung muss sich jedoch von allen übrigen in mindestens einem der oben genannten Aspekte unterscheiden. So kann der Compiler unterscheiden, welche Version verwendet werden muss, wenn im Code die Eigenschaft oder Prozedur aufgerufen wird.

  • Nicht zulässige Unterschiede. Einen oder mehreren der folgenden Aspekte zu ändern ist beim Überladen einer Eigenschaft oder Prozedur nicht zulässig, da diese Aspekte nicht zur Signatur gehören:

    • ob ein Wert zurückgegeben wird (bei Prozeduren)

    • Datentyp des Rückgabewerts (außer bei einem Konvertierungsoperator)

    • Namen der Parameter oder der Typparameter

    • Einschränkungen für die Typparameter (bei generischen Prozeduren)

    • Parametermodifiziererschlüsselwörter (z. B. ByRef oder Optional)

    • Schlüsselwörter für Eigenschaften- oder Prozedurmodifizierer (z. B. Public oder Shared)

  • Optionaler Modifizierer. Sie brauchen den Overloads-Modifizierer nicht zu verwenden, wenn Sie mehrere überladene Eigenschaften oder Prozeduren in derselben Klasse definieren. Sobald Sie Overloads jedoch in einer der Deklarationen verwenden, müssen Sie es in allen verwenden.

  • **Shadowing und Überladen.**Overloads kann auch verwendet werden, um für einen vorhandenen Member oder eine Gruppe überladener Member in einer Basisklasse ein Shadowing durchzuführen. Bei der beschriebenen Verwendung von Overloads deklarieren Sie die Eigenschaft oder Methode mit demselben Namen und derselben Parameterliste wie den Basisklassenmember. Dabei müssen Sie das Shadows-Schlüsselwort nicht angeben.

Der Overloads-Modifizierer kann in folgenden Kontexten verwendet werden:

Function-Anweisung

Operator-Anweisung

Property-Anweisung

Sub-Anweisung

Siehe auch

Aufgaben

Gewusst wie: Definieren eines Konvertierungsoperators

Konzepte

Prozedurüberladung

Generische Typen in Visual Basic

Operatorprozeduren

Referenz

Shadows