При попытке использовать лямбда-выражение вместо оператора AddressOf
с параметром для ForEach
подразделам я получаю следующее сообщение об ошибке:Как передать параметр System.Action с лямбда-выражениями для ForEach?
Statement lambdas cannot be converted to expressions trees
Это AddressOf
код, который работает:
lista.ForEach(new Action(Of String)(AddressOf Console.WriteLine))
Это код лямбда, который производит ошибку:
lista.ForEach(new Action(Of String)(Function(x) x = "teste")
метод 012 Вызывается, поэтому в качестве параметра необходимо передать Action
.
Может ли кто-нибудь помочь мне с этим или сказать мне, возможно ли это или нет?
'lista.ForEach (новое действие (Of String) (Sub (х) = х "Teste")' – Fabio
Спасибо Фабио, но я получаю то же компиляции ERR или. «Statement lambda ...» – brunoazev
Следующая строка будет компилировать ok -> 'lista.ForEach (новое действие (Of String) (Sub (значение) Console.WriteLine (значение)))'. Таким образом, вы даже можете удалить «новое действие ...» и передать там только lambda: 'lista.ForEach (Sub (значение) Console.WriteLine (значение))' – Fabio