Если метод запрашивает некоторую Func
:
void Foo(Func<string> stringFactory);
Затем передача лямбда-ссылки this
вводит захват переменной:
Foo(() => this.MagicStringProperty); // Captures `this`
Это также происходит при передачеметод экземпляра вместо лямбды?
Foo(this.GetMagicString); // Capturing??
string GetMagicString()
{
return "Bar";
}
Если да, скомпилировано ли это с аналогом лямбда-версии?
Если нет, как ему удается передать оба метода (который существует где-то) и экземпляр (который существует где-то еще)?