主要想说的是构造函数的执行顺序,先执行的是基类object
如:
public class MyBaseClass
{
public MyBaseClass()
{
}
public MyBaseClass(int i)
{
}
}
public class MyDerivedClass:MyBaseClass
{
public MyDerivedClass()
{
}
public MyDerivedClass(int i,int j)
{
}
}
执行顺序:
System.Object.Object()构造函数
MyBaseClass.MyBaseClass()构造函数
MyDerivedClass.MyDerivedClass()构造函数
有时候会看到构造函数有这种写法:
public MyDerivedClass(int i,int j):base(i)
{
//这样就会执行MyBaseClass.MyBaseClass(i),这个构造函数
}
public MyDerivedClass():this(5,6)
{
//这样会调用MyDerivedClass.MyDerivedClass(5,6)这个构造函数先
}