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

Aggiornamento: novembre 2007

Option Strict On does not allow narrowing in implicit type conversions between the lambda expression 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 un'espressione lambda assegnata a una variabile di tale 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

Pertanto, il parametro corrispondente di qualsiasi espressione lambda assegnata a una variabile di tipo Del può essere un Integer o un qualsiasi tipo di dati per il quale vi sia la 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 così che esista la relazione obbligatoria di conversione verso un tipo di dati più grande.

  • Non specificare i tipi di dati dei parametri nell'espressione lambda. I tipi verranno derivati dai parametri corrispondenti nel delegato.

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

Vedere anche

Concetti

Espressioni lambda

Conversioni di ampliamento e restrizione

Conversione di tipo relaxed del delegato

Altre risorse

Delegati in Visual Basic