0

以下关于构造函数初始化程序的部分的含义是什么?

实例构造函数初始化程序无法访问正在创建的实例。因此this,在构造函数初始化程序的参数表达式中引用是编译时错误,就像参数表达式通过简单名称引用任何实例成员一样,也是编译时错误。

4

1 回答 1

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())。

于 2013-04-13T05:30:35.540 回答