Partilhar via


Expressão lambda não pode ser convertido em '<typename>' porque '<typename>' não é um tipo delegado

As expressões lambda podem ser usadas onde delegados são válido.Eles podem ser convertidos para tipos delegado compatível, mas não para qualquer Outros tipo.Por exemplo, você pode definir um tipo delegado e atribuir uma expressão lambda a ele ou enviar uma expressão lambda sistema autônomo o argumento para um Func<TResult> parâmetro. Esses exemplos são mostrados no código a seguir.

Module Module1

    Delegate Function FunDel(ByVal m As Integer) As Boolean

    Sub Main()

        ' Assign a lambda expression to a function delegate.
        Dim negative As FunDel = Function(n As Integer) n < 0
        Console.WriteLine(negative(-3))

        ' Send a lambda as the argument to a delegate parameter.
        Dim numbers() As Integer = {3, 4, 2, 8, 1, 0, 9, 13, 42}
        Dim evens = numbers.Where(Function(n) n Mod 2 = 0)

        For Each even In evens
            Console.WriteLine(even)
        Next

    End Sub

End Module

ID de erro: BC36625

Consulte também

Conceitos

Expressões Lambda