【发布时间】:2019-03-12 13:20:56
【问题描述】:
如果一个方法要求一些Func:
void Foo(Func<string> stringFactory);
然后传递一个引用 this 的 lambda 引入变量捕获:
Foo(() => this.MagicStringProperty); // Captures `this`
在传递实例方法而不是 lambda 时也会发生这种情况吗?
Foo(this.GetMagicString); // Capturing??
string GetMagicString()
{
return "Bar";
}
如果是这样,这是否编译为与 lambda 版本类似的东西?
如果没有,它如何同时传递方法(存在于某处)和实例(存在于其他地方)?
【问题讨论】:
标签: c# lambda delegates capture func