【发布时间】:2011-05-25 13:30:22
【问题描述】:
如果我尝试做这样的事情会出现错误的任何想法:
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,所以很好奇为什么一个被允许而另一个不被允许。
谢谢, 亚历克斯
【问题讨论】:
-
我不知道为什么这个问题作为重复而被关闭,因为另一个问题的答案是关于为什么它没有被报告为错误被回答为“这是一个错误编译器”,而没有实际解释为什么不允许这样做。
标签: c#