Просто наткнулся на это сегодня
Анонимная функция или группа методов не могут использоваться в качестве составной части значение динамически связанной операции.
при попытке сделать
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)
Теперь большинство ограничений по динамике имеют смысл для меня - вы не можете использовать метод расширения, потому что как компилятор должен решить, какой статикой он должен скомпилировать? Но я этого не понимаю. Откуда возникает путаница? Что такое ограничение?