我想学习C#对匿名类型的限制。考虑以下代码:
var myAwesomeObject = new {
fn1 = new Func<int>(() => { return 5; }),
fn2 = () => { return 5; }
};
我们有两个实际上是函数的属性:
fn1
: 一个返回5
的Func<int>
。fn2
: 一个返回5
的 lambda 函数。
C# 编译器可以正常处理 fn1,但是对于 fn2 报错:
无法将 Lambda 表达式分配给匿名类型属性。
有人能解释一下为什么其中一个可以而另一个不行吗?
var fn2 = () => { return 5; };
,也会遇到相同的问题。 - Lasse V. Karlsen