A opção Strict On não permite o estreitamento em conversões de tipo implícitas entre a expressão lambda e o delegado '<delegatename>'

Com Option Strict on, você não pode ter uma conversão de estreitamento entre o tipo de dados de um parâmetro em um delegado e o parâmetro correspondente de uma expressão lambda atribuída a uma variável desse tipo de delegado. Por exemplo, no código a seguir, delegate Del tem um parâmetro do tipo Integer.

Delegate Function Del(ByVal p As Integer) As String  

Portanto, o parâmetro correspondente de qualquer expressão lambda atribuída a uma variável do tipo Del pode ser um Integer ou qualquer tipo de dados para o qual há uma conversão de ampliação de 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 de erro: BC36662

Para corrigir este erro

  • Altere o tipo de dados do parâmetro na expressão delegada ou lambda para que exista a relação de ampliação necessária.

  • Não especifique tipos de dados de parâmetro na expressão lambda. Os tipos serão inferidos a partir dos parâmetros correspondentes no delegado.

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

Consulte também