Impossibile convertire l'espressione lambda in '<nometipo>' perché '<nometipo>' non è un tipo delegato

Aggiornamento: novembre 2007

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

Le espressioni lambda possono essere utilizzate quando i delegati sono validi. Possono essere convertite in tipi delegati compatibili, ma non in altri tipi. Ad esempio, è possibile definire un tipo delegato e assegnargli un'espressione lambda o inviare un'espressione lambda come argomento a un parametro Func<TResult>. Nel codice seguente vengono illustrati questi esempi.

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 errore: BC36625

Vedere anche

Concetti

Espressioni lambda