Freigeben über


Der Lambda-Ausdruck kann nicht in '<Typname>' konvertiert werden, da '<Typname>' kein Delegattyp ist.

Aktualisiert: November 2007

Lambda expression cannot be converted to '<typename>' because '<typename>' is not a delegate type

Lambda-Ausdrücke können an Stellen verwendet werden, an denen ein Delegattyp gültig ist. Sie können in kompatible Delegattypen konvertiert werden, jedoch nicht zu einem anderen Typ. Sie können beispielsweise einen Delegattyp definieren und diesem einen Lambda-Ausdruck zuweisen oder einen Lambda-Ausdruck als Argument an einen Func<TResult>-Parameter senden. Diese Beispiele werden im folgenden Code dargestellt.

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

Fehler-ID: BC36625

Siehe auch

Konzepte

Lambda-Ausdrücke