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