构造函数初始化器用于从一个构造函数中调用另一个构造函数。
关键字为this和base。
this表示调用当前类中的构造函数,base表示调用父类中的构造函数。
如下代码:
public class MyBaseClass
{
public MyBaseClass()
{
}
public MyBaseClass(int i)
{
}
}
public class MyDerivedClass : MyBaseClass
{
public MyDerivedClass()
: this(5, 6)
{
}
public MyDerivedClass(int i)
{
}
public MyDerivedClass(int i, int j)
: base(i)
{
}
}
</pre><pre name="code" class="csharp">按如下初始化:
public class MyClass
{
MyDerivedClass myObj = new MyDerivedClass(4, 8);
}
则执行顺序为:
- 执行System.Object.Object()构造函数
- 执行MyBaseClass.MyBaseClass(int i)构造函数
- 执行MyDerivedClass.MyDerivedClass(int i , int j)构造函数
- 执行MyDerivedClass.MyDerivedClass()构造函数