如果我有一个像这样的方法:
void SomeMethod () {
Func<A,B> f = a => /*Some code*/;
...
b = f (a);
}
每次调用 SomeMethod
时,f
都会被创建吗?我的意思是说,这行代码需要花费时间进行计算,还是编译器将函数保存在某个地方,在执行时跳过它?
f
是否“引用相等”的问题?(我认为它会,但是手头没有参考资料。) - user2864740f
与稍后调用的f
进行比较,它们将作为引用和实例而不同,因此ReferenceEquals
将为 false,但根据Equals
的相关重写,它们将是相等的。这个事实是 C# 规范所要求的。还要注意,这里 重载了运算符 ==。 - Jeppe Stig Nielsen