Option Strict On erlaubt keine Einschränkungen in impliziten Typkonvertierungen zwischen der '<Methodenname>'-Methode und dem Delegaten '<Delegatname>'

Aktualisiert: November 2007

Option Strict On does not allow narrowing in implicit type conversions between method '<methodname>' and delegate '<delegatename>'

Bei Option Strict On wird keine einschränkende Konvertierung zwischen dem Datentyp eines Parameters in einem Delegaten und dem entsprechenden Parameter einer Funktion oder dem einer Variablen dieses Delegattyps zugewiesenen Sub unterstützt. Beispiel: Der Funktionsdelegat Del verfügt über einen Parameter mit dem Typ Integer, und die Funktionen Conversion1, Conversion2 und Conversion3 verfügen über einen Parameter mit unterschiedlichen numerischen Typen.

Delegate Function Del(ByVal p As Integer) As String

Function Conversion1(ByVal n As Integer) As String
    Return "Valid"
End Function

Function Conversion2(ByVal n As Long) As String
    Return "Valid"
End Function

Function Conversion3(ByVal n As Short) As String
    Return "Not valid"
End Function

Da eine erweiternde Konvertierung von Integer in Integer und in Long vorhanden ist, sind die folgenden Zuweisungen gültig.

' Valid.
Dim funDel1 As Del = AddressOf Conversion1
Dim funDel2 As Del = AddressOf Conversion2

Die Konvertierung von Integer in Short ist eine einschränkende Konvertierung. Daher ist die folgende Zuweisung nicht gültig.

' Not valid.
Dim funDel3 As Del = AddressOf Conversion3

Fehler-ID: BC36663

So beheben Sie diesen Fehler

  • Ändern Sie den Datentyp des Parameters in den Delegaten oder die Methode, um die erforderliche erweiternde Beziehung herzustellen.

Siehe auch

Konzepte

Gelockerte Delegatenkonvertierung

Erweiternde und eingrenzende Konvertierungen

Delegaten und der AddressOf-Operator

Weitere Ressourcen

Delegaten in Visual Basic