Option Strict On non consente la riduzione in conversioni implicite di tipi tra l'espressione lambda e il delegato '<delegatename>'

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 un'espressione lambda assegnata a una variabile di quel tipo di delegato. Nel codice seguente, ad esempio, il delegato Del ha un parametro di tipo Integer.

Delegate Function Del(ByVal p As Integer) As String  

Di conseguenza, il parametro corrispondente di un'espressione lambda assegnata a una variabile di tipo Del può essere un Integer o qualsiasi tipo di dati per cui è disponibile una conversione verso un tipo di dati più grande da Integer.

' Valid.  
Dim example1 As Del = Function(n As Integer) "Valid"  
Dim example2 As Del = Function(n As Long) "Valid"  
  
' Not valid.  
Dim example3 As Del = Function(n As Short) "Not Valid"  

ID errore: BC36662

Per correggere l'errore

  • Modificare il tipo di dati del parametro nel delegato o l'espressione lambda in modo che sia presente la relazione obbligatoria di conversione verso un tipo di dati più grande.

  • Non specificare tipi di dati di parametro nell'espressione lambda. I tipi saranno dedotti dai parametri corrispondenti nel delegato.

Dim example4 As Del = Function(n) "Valid"  

Vedi anche