Partager via


L'expression lambda ne peut pas être convertie en '<NomType>', car '<NomType>' n'est pas un type délégué

Mise à jour : novembre 2007

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

Les expressions lambda peuvent être utilisées chaque fois qu'un type délégué est valide. Elles peuvent être converties en types délégués compatibles, mais pas en d'autres types. Par exemple, vous pouvez définir un type délégué et lui assigner une expression lambda, ou envoyer une expression lambda comme argument à un paramètre Func<TResult>. Ces exemples sont illustrés dans le code suivant.

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 d'erreur : BC36625

Voir aussi

Concepts

Expressions lambda