using System;
class A
{
//靜態構造函數用來初始化類的靜態成員,使用類A時會自動調用,且不管該類有多少實例對象,該函數只執行一次
static A()
{
Console.WriteLine("類A靜態構造函數被調用");
}
public A()
{
Console.WriteLine("類A默認構造函數被調用");
}
public A(int i)
{
Console.WriteLine("類A帶參構造函數被調用");
}
}
class B:A
{
public B()
{
Console.WriteLine("類B默認構造函數被調用");
}
public B(int i):base(i)//base關鍵字,指定調用基類某個版本的構造函數
{
Console.WriteLine("類B帶參構造函數被調用");
}
}
public class Test
{
static void Main()
{
//類A實例化了兩次,但其靜態構造函數只執行了一次
A a = new A();
A a1 = new A();
Console.WriteLine();
//實例化類B的時候,會首先調用其基類A的默認構造函數;當需要指定調用基類其他版本構造函數時,需用base關鍵字
B b = new B();
B b1 = new B(100);
}
}