相关疑难解决方法(0)

为什么你不能在成员初始化器中使用'this'?

可能重复:
在成员初始化程序中不能使用'this'?

如果我尝试做这样的事情,为什么我会收到错误的任何想法:

public class Bar
{
    public Bar(Foo foo)
    {
    }
}

public class Foo
{
    private Bar _bar = new Bar(this);
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说:

"不能在成员初始化程序中使用'this'"

但以下工作:

public class Foo
{
    private Bar _bar;

    public Foo()
    {
        _bar = new Bar(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道这背后的原因?我的理解是这些会编译成同一个IL,所以很好奇为什么一个被允许而另一个不被允许.

谢谢,亚历克斯

c#

54
推荐指数
2
解决办法
4406
查看次数

标签 统计

c# ×1