'<typename>' は、デリゲート型でないため、ラムダ式を '<typename>' に変換できません

更新 : 2007 年 11 月

ラムダ式は、デリゲートが有効な場所で使用できます。ラムダ式は、互換性のあるデリゲート型にのみ変換できます。たとえば、デリゲート型を定義して、これにラムダ式を割り当てるか、Func<TResult> パラメータの引数としてラムダ式を送信できます。これらの例を次のコードに示します。

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

Error ID: BC36625

参照

概念

ラムダ式