Поделиться через


Лямбда-выражение нельзя преобразовать в< "typename>", так как "<typename>" не является типом делегата

Лямбда-выражения можно использовать, когда делегаты являются допустимыми. Их можно преобразовывать в совместимые типы делегатов, но не в какой-либо другой тип. Например, можно определить тип делегата и присвоить ему лямбда-выражение или отправить лямбда-выражение в качестве аргумента в параметр 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  

Идентификатор ошибки: BC36625

См. также