Option Strict On no permite restricciones en conversiones de tipo implícitas entre la expresión lambda y el delegado '<delegatename>'

Con Option Strict On, no puede haber una conversión de restricción entre el tipo de datos de un parámetro de un delegado y el parámetro correspondiente de una expresión lambda asignada a una variable de ese tipo de delegado. Por ejemplo, en el código siguiente, el delegado Del tiene un parámetro de tipo Integer.

Delegate Function Del(ByVal p As Integer) As String  

Por lo tanto, el parámetro correspondiente de cualquier expresión lambda que se asigna a una variable de tipo Del puede ser Integer o cualquier tipo de datos para el que hay una conversión de ampliación desde 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"  

Identificador de error: BC36662

Para corregir este error

  • Cambie el tipo de datos del parámetro en el delegado o la expresión lambda para que exista la relación de ampliación necesaria.

  • No especifique tipos de datos de parámetro en la expresión lambda. Los tipos se inferirán de los parámetros correspondientes en el delegado.

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

Consulte también