可能重复:无法在成员初始化器中使用“this”?如果我尝试执行如下操作,为什么会出现错误:public class Bar{ public Bar(Foo foo) { }}public ...
可能重复:
不能在成员初始值设定项中使用“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,所以我很好奇为什么一个是允许的而另一个是不允许的。
谢谢,亚历克斯