(1)構造函數
<1>除非是static,否則編譯器將會給每一個沒有構造函數的類指定一個默認的構造函數
<2>構造函數private時候,類不能被實例化
<3>派生類可以通過base來顯式的調用基類的構造函數,當無顯式調用時,編譯器會自動的調用基類的默認構造函數
<4>基類沒有默認構造函數,派生類必須顯式的調用base
<5>構造函數可以標記為 public,protected,private,internal,protected internal
<6>實例構造函數,靜態構造函數。初始化靜態類或者非靜態類中的靜態變量就必須定義靜態構造函數。
<7>私有構造函數
私有構造函數存在的意義是為了防止被實例化,當一個類不想被聲稱為靜態類,同時裡面都是靜態成員時候,可以使用靜態構造函數。示例:
public class Counter { private Counter() { } public static int currentCount; public static int IncrementCount() { return ++currentCount; } } class TestCounter { static void Main() { Counter.currentCount = 100; Counter.IncrementCount(); Console.WriteLine("New count: {0}", Counter.currentCount); // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } }
class Car { ~Car() // destructor { // cleanup statements... } }
protected override void Finalize() { try { // Cleanup statements... } finally { base.Finalize(); } }