可能重复:
Cannot use ‘this’ in member initializer?为什么你不能在成员初始值设定项中使用'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中,所以我很好奇为什么允许一个而另一个不允许。
谢谢, 亚历克斯
我不知道为什么这个问题被关闭为重复,因为答案的另一个问题是,为什么它是错的,用“这是在编译器中的错误回答说:”没有实际没有被报道解释为什么它不被允许。 – Powerlord 2015-07-28 14:43:02