Nie można przekonwertować wyrażenia lambda na "<typename", ponieważ "<typename>>" nie jest typem delegata

Wyrażenia lambda mogą być używane, gdy delegaty są prawidłowe. Można je konwertować na zgodne typy delegatów, ale nie na inny typ. Można na przykład zdefiniować typ delegata i przypisać do niego wyrażenie lambda lub wysłać wyrażenie lambda jako argument do parametru Func<TResult> . Te przykłady przedstawiono w poniższym kodzie.

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

Identyfikator błędu: BC36625

Zobacz też