这是什么意思

时间:2013-04-13 05:23:32

标签: c# constructor

以下constructor initializers部分的含义是什么?

  

实例构造函数初始值设定项无法访问正在创建的实例。因此,在构造函数初始值设定项的参数表达式中引用this是编译时错误,因为参数表达式通过简单名称引用任何实例成员的编译时错误。

1 个答案:

答案 0 :(得分:8)

这意味着当构造函数初始化程序运行时,实例仍处于创建过程中。因此,初始化程序无法通过this或直接访问实例成员:

class Foo
{
    private int _bar;

    public Foo(int bar)
    {
        _bar = bar;
    }

    public Foo() : this(_bar)       // Illegal.
    {
    }

    public Foo() : this(this._bar)  // Also illegal.
    {
    }
}

此推理适用于构造函数初始值设定项(this()base())。