Freigeben über


"Optional" kann nicht auf den ersten Parameter einer Erweiterungsmethode angewendet werden

Aktualisiert: November 2007

Fehlermeldung

"Optional" kann nicht auf den ersten Parameter einer Erweiterungsmethode angewendet werden. Der erste Parameter gibt den zu erweiternden Typ an.
'Optional' cannot be applied to the first parameter of an extension method. The first parameter specifies which type to extend.

Der erste Parameter einer Erweiterungsmethode gibt den Datentyp an, der von der Methode erweitert wird. Beim Ausführen der Methode wird der erste Parameter an die Instanz des Datentyps gebunden, der die Methode aufruft. Daher ist der erste Parameter erforderlich und nicht optional.

Diese Einschränkung gilt nur für den ersten Parameter. Andere Parameter können optional sein oder nicht. Dabei gelten die gleichen Regeln wie in anderen Methoden. Weitere Informationen finden Sie unter Parameterliste.

Fehler-ID: BC36553

So beheben Sie diesen Fehler

  • Wenn der jeweils erste Parameter den zu erweiternden Datentyp angeben soll, entfernen Sie das Optional-Schlüsselwort.

  • Wenn dieser erste Parameter ein Standardparameter für die Methode ist und dieser nicht den zu erweiternden Datentyp angeben soll, fügen Sie einen neuen ersten Parameter hinzu.

Beispiel

Der erste Parameter im folgenden Beispiel ist der einzige Hinweis darauf, dass die Print-Methode den String-Datentyp erweitert. Daher kann dieser nicht optional sein.

<Extension()>
Public Sub Print (ByVal str As String)
    Console.WriteLine(str)
End Sub

Bei folgendem Aufruf der Erweiterungsmethode wird der Parameter str in der Methode an greeting gebunden. Dies ist die Instanz von String, von der Print aufgerufen wird. Der Compiler verwendet greeting als Argument für die Erweiterungsmethode Print.

    Dim greeting As String = "Hello"
    greeting.Print()

Siehe auch

Aufgaben

Gewusst wie: Definieren optionaler Parameter für eine Prozedur

Konzepte

Erweiterungsmethoden (Visual Basic)

Optionale Parameter