Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Con Option Strict non è possibile avere una conversione verso un tipo di dati più piccolo tra il tipo di dati di un parametro in un delegato e il corrispondente parametro di una funzione o Sub assegnata a una variabile di quel tipo di delegato. Ad esempio, il delegato della funzione Del ha un parametro di tipo Integer, mentre le funzioni Conversion1, Conversion2e Conversion3 hanno un parametro di tipi numerici diversi.
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
Dal momento che ha luogo una conversione verso un tipo di dati più grande da Integer a Integer e a Long, le assegnazioni seguenti sono valide.
' Valid.
Dim funDel1 As Del = AddressOf Conversion1
Dim funDel2 As Del = AddressOf Conversion2
La conversione da Integer a Short è una conversione verso un tipo di dati più piccolo. DI conseguenza, l'assegnazione seguente non è valida.
' Not valid.
Dim funDel3 As Del = AddressOf Conversion3
ID errore: BC36663
Per correggere l'errore
- Modificare il tipo di dati del parametro nel delegato o nel metodo in modo che sia presente la relazione obbligatoria di conversione verso un tipo di dati più grande.