Partilhar via


Option Strict On não permite restringir em conversões implícitas de tipo entre a expressão lambda e delegar '< delegateName >'

Com Option Strict ativado, você não pode ter uma conversão de restrição entre o tipo de dados de um parâmetro em um representante e o parâmetro correspondente de uma expressão lambda atribuído a uma variável do tipo delegado.Por exemplo, no código a seguir, o representante 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ído a uma variável do tipo Del pode ser um Integer ou qualquer tipo de dados para o qual não haja uma conversão ampliadora 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 em que o representante ou o método de extensão para que a relação de ampliação necessária exista..

  • Não especificar tipos de dados de parâmetros na expressão lambda.Tipos serão inferidos dos dos parâmetros correspondentes no representante.

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

Consulte também

Conceitos

Expressões Lambda

Conversões Ampliadoras e Redutoras

Conversão de delegado reduzida

Outros recursos

Delegados no Visual Basic