'Optional' kann nicht auf den ersten Parameter einer Extensionmethode angewendet werden

'Optional' kann nicht auf den ersten Parameter einer Extensionmethode angewendet werden. Der erste Parameter gibt den zu erweiternden Typ an.

Der erste Parameter einer Extensionmethode 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 nach den gleichen Regeln wie in jeder anderen Methode optional oder nicht optional sein. Weitere Informationen finden Sie unter Parameter List.

Fehler-ID: BC36553

So beheben Sie diesen Fehler

  • Wenn Sie möchten, dass der aktuelle erste Parameter den Datentyp angibt, der erweitert wird, entfernen Sie das Schlüsselwort Optional .

  • Wenn der aktuelle erste Parameter ein Standardparameter für die Methode ist und Sie nicht wünschen, dass er den Datentyp darstellt, der erweitert werden soll, fügen Sie einen neuen ersten Parameter hinzu.

Beispiel

Der erste Parameter im folgenden Beispiel ist die einzige Anzeige dafür, dass die Print -Methode den String -Datentyp erweitert. Aus diesem Grund kann er nicht optional sein.

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

Wenn die Erweiterungsmethode wie folgt aufgerufen wird, wird der Parameter str in der Methode an greetinggebunden, d. h. die Instanz von String , die Printaufruft. Der Compiler verwendet greeting als das Argument für die Extensionmethode Print.

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

Siehe auch