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