Просто столкнулся с этим сегодняПочему вы не можете использовать функцию anon с динамическим параметром?
анонимная функция или группа метод не может быть использован в качестве значения динамически связанной операции составляющей .
при попытке сделать
static R ifNotNull<R>(dynamic o, Func<dynamic, R> returnFunc, R otherwise) {
return ReferenceEquals(null, o) ? otherwise : returnFunc(o);
}
и использовать его с
dynamic firstAddress = ...;
return ifNotNull<string>(firstAddress, (a) => a.address_1, null)
Теперь большинство ограничений на динамику имеют смысл для меня - вы не можете использовать метод расширения, потому что, как компилятор должен решить, какой статикой для его компиляции? Но я этого не понимаю. Откуда возникает путаница? Что же такое ограничение?
Там, вероятно, проблема с компиляции '(а) => a.address_1' в' returnFunc'.В ожидании Эрика Липперта ответить на этот вопрос :-) – dasblinkenlight
Кстати, в чем разница между вашим кодом и 'static R ifNotNull (object o, Func
@dasblinkenlight именно то, о чем я думал. Подготовьтесь к Lippert в 3..2..1 ... –