首先說明下之所以用雙引號是因為構造函數是沒有繼承的派生類默認會調用基類的無參數構造函數
比如:
public class A {
public A() {
Console
}
public A(string name) {
Console
}
}
public class B : A {
public B() {
Console
}
public B(string name) {
Console
}
}
class Program
{
static void Main(string[] args)
{
B b = new B();
B b
Console
}
}
輸出的結果為
說明不管調用派生類的哪個構造函數
之所以標題中用
class Program {
static void Main(string[] args)
{
B b = new B();
Console
}
}
public class B : A {
public B():base(
Console
}
public B(string name) {
Console
}
}
輸出結構為
由結果可以看出
下面寫下在同一個類中構造函數的調用
class Program {
static void Main(string[] args)
{
B b = new B();
Console
}
}
public class B : A {
public B():this(
Console
}
public B(string name):this(true) {
Console
}
public B(bool b) {
Console
}
輸出結果
為了看一下調用的先後關系就又加了一個bool參數的構造函數
public B():this(
執行順序是從後向前依次執行的
From:http://tw.wingwit.com/Article/program/net/201311/11827.html