可能重复:无法在成员初始化器中使用“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,所以我很好奇为什么一个是允许的而另一个是不允许的。
谢谢,亚历克斯
为什么不能在成员初始值设定项中使用“this”?
下载声明:
本站所有软件和资料均为软件作者提供或网友推荐发布而来,仅供学习和研究使用,不得用于任何商业用途。如本站不慎侵犯你的版权请联系我,我将及时处理,并撤下相关内容!