Я пытаюсь изучить ограничения на С# для анонимного типа. Рассмотрим следующий код:
var myAwesomeObject = new {
fn1 = new Func<int>(() => { return 5; }),
fn2 = () => { return 5; }
};
Итак, у нас есть два свойства, которые фактически являются функциями:
-
fn1: AFunc<int>, который возвращает5. -
fn2: лямбда-функция, которая возвращает5.
Компилятор С# рад работать с fn1, но жалуется на fn2:
не может назначить lambda-выражение для свойства анонимного типа.
Может кто-нибудь объяснить, почему все нормально, а другое нет?