可能是重复问题:
成员初始化程序中不能使用'this'关键字?
有人知道为什么如果我尝试这样做会出现错误:
public class Bar
{
public Bar(Foo foo)
{
}
}
public class Foo
{
private Bar _bar = new Bar(this);
}
我遇到一个错误:
"无法在成员初始化程序中使用 'this'"
但以下代码可以正常工作:
public class Foo
{
private Bar _bar;
public Foo()
{
_bar = new Bar(this);
}
}
有人知道这背后的原因吗?我理解它们将编译为相同的IL,因此很好奇为什么允许使用其中一个而不允许使用另一个。
谢谢, Alex