Teilen über


Overloads (Visual Basic)

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

Bemerkungen

Als Überladung wird die Bereitstellung von mehreren Definitionen für eine bestimmte Eigenschaft oder einen Prozedurnamen im selben Bereich bezeichnet. Das erneute Deklarieren einer Eigenschaft oder Prozedur mit einer anderen Signatur wird gelegentlich als Ausblenden nach Signatur bezeichnet.

Regeln

  • Deklarationskontext. Sie können Overloads nur in einer Eigenschaft oder einer Prozedurdeklarationsanweisung verwenden.

  • Kombinierte Modifizierer. Sie können nicht Overloads zusammen mit Shadows in derselben Prozedurdeklaration angeben.

  • Erforderliche Unterschiede. Die Signatur in dieser Deklaration muss sich von der Signatur jeder Eigenschaft oder Prozedur unterscheiden, die sie überlädt. Die Signatur besteht aus der Eigenschaft oder dem Prozedurnamen und dem Folgenden:

    • der Anzahl der Parameter

    • Der Reihenfolge der Parameter

    • der Datentypen der Parameter

    • der Anzahl der Typparameter (für eine generische Prozedur)

    • der Rückgabetyp (nur für eine Konvertierungsoperatorprozedur)

    Alle Überladungen müssen denselben Namen aufweisen. Jede muss sich jedoch von allen anderen in mindestens einem der vorstehenden Punkte unterscheiden. Dadurch kann der Compiler unterscheiden, welche Version verwendet werden muss, wenn der Code die Eigenschaft oder Prozedur aufruft.

  • Nicht zulässige Unterschiede. Das Ändern von mindestens einem der folgenden Punkte ist für das Überladen einer Eigenschaft oder Prozedur nicht gültig, da sie kein Bestandteil der Signatur sind:

    • ob ein Wert (für eine Prozedur) zurückgegeben wird

    • der Datentyp des Rückgabewerts (mit Ausnahme eines Konvertierungsoperators)

    • die Namen der Parameter oder Typparameter

    • die Einschränkungen hinsichtlich der Typparameter (für eine generische Prozedur)

    • Parametermodifiziererschlüsselwörter (wie ByRef oder Optional)

    • Eigenschaft oder Prozedurmodifiziererschlüsselwörter (wie Public oder Shared)

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

  • Shadowing und Überladen. Overloads kann auch zum Durchführen eines Shadowings für ein vorhandenes Member oder einen Satz mit überladenen Membern in einer Basisklasse verwendet werden. Wenn Sie Overloads auf diese Art und Weise verwenden, deklarieren Sie die Eigenschaft oder Methode mit demselben Namen und derselben Parameterliste als Basisklassenmember, und Sie stellen das Shadows-Schlüsselwort nicht bereit.

Beim Verwenden von Overrides fügt der Compiler implizit Overloads hinzu, sodass Ihre Bibliotheks-APIs leichter mit C# verwendet werden können.

Der Overloads-Modifizierer kann in folgenden Kontexten verwendet werden:

Siehe auch