主要想說的是構造函數的執行順序,先執行的是基類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)這個構造函數先
}