構造函數詳解
阿新 • • 發佈:2017-08-23
code ember pla 決定 mem 技術 har 實例化 sta
首先構造函數是為了給初始化對象賦初值
構造函數大類分為無參構造函數和有參構造函數,其次是靜態和非靜態構造函數
1 public class Test 2 { 3 int i; 4 private char p1; 5 private char p2; 6 7 static Test() 8 { 9 10 } 11 public Test() 12 { 13 i = 1; 14 Console.WriteLine("View CodeI am Test 默認構造函數 i={0}", i); 15 } 16 public Test(string str) 17 { 18 //i = 1; 19 Console.WriteLine("I am Test 默認構造函數 i={0}", str); 20 } 21 public Test(string str, string dt) 22 { 23 Console.WriteLine("I am Test 默認構造函數 i={0}", str); 24 Console.WriteLine("I am Test 默認構造函數 i={0}", dt); 25 } 26 27 public Test(char p1, char p2) 28 { 29 // TODO: Complete member initialization 30 this.p1 = p1; 31 this.p2 = p2; 32 Console.WriteLine("I am Test 默認構造函數 i={0}", p1); 33 Console.WriteLine("I am Test 默認構造函數 i={0}", p2); 34 } 35 } 36 public class ProgramTest 37 { 38 static void Main(string[] args) 39 { 40 Test t = new Test(‘3‘, ‘2‘); 41 Console.Read(); 42 }
一個類中可以自定義多個構造函數
其中靜態構造函數特殊:
靜態構造函數一個類中只能定義一個,而且最多只能運行一次
當類中的靜態成員有初始值時,沒有聲明靜態構造函數,那麽編譯器會自動生成默認的靜態構造函數。
靜態構造函數不可以被繼承
非靜態構造函數:
當有多個構造函數時,在實例化的時候根據你提供的參數編譯器決定調用哪一個構造函數
當構造函數是私有的private時 有且只有一個構造函數時 類不能實例化
構造函數詳解