什麼是建構函式,建構函式是我們使用new關鍵字例項化物件時呼叫執行該物件的建構函式。
建構函式大類分為無參建構函式和有參建構函式,其次是靜態和非靜態建構函式
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("I 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 }
一個類中可以自定義多個建構函式
其中靜態建構函式特殊:
靜態建構函式一個類中只能定義一個,而且最多隻能執行一次(因為靜態在程式執行時預設就自動建立開闢空間,不需要我們去new他們,也就是例項化)
當類中的靜態成員有初始值時,沒有宣告靜態建構函式,那麼編譯器會自動生成預設的靜態建構函式。
靜態建構函式不可以被繼承
非靜態建構函式:
當有多個建構函式時,在例項化的時候根據你提供的引數編譯器決定呼叫哪一個建構函式
當建構函式是私有的private時 有且只有一個建構函式時 類不能例項化