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.
Aggiornamento: novembre 2007
Option Strict On does not allow narrowing in implicit type conversions between method '<methodname>' and delegate '<delegatename>'
Con Option Strict attivata, non è possibile la conversione verso un tipo di dati più piccolo tra il tipo di dati di un parametro in un delegato e il parametro corrispondente di una funzione o Sub assegnata a una variabile di tale tipo di delegato. Ad esempio, il delegato della funzione Del ha un parametro di tipo Integer, mentre le funzioni Conversion1, Conversion2 e 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
Poiché 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. Pertanto, 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 così che esista la relazione obbligatoria di conversione verso un tipo di dati più grande.
Vedere anche
Concetti
Conversione di tipo relaxed del delegato
Conversioni di ampliamento e restrizione
Delegati e operatore AddressOf