1. 程式人生 > >構造函數詳解

構造函數詳解

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("
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 }
View Code

一個類中可以自定義多個構造函數

其中靜態構造函數特殊:

靜態構造函數一個類中只能定義一個,而且最多只能運行一次

當類中的靜態成員有初始值時,沒有聲明靜態構造函數,那麽編譯器會自動生成默認的靜態構造函數。

靜態構造函數不可以被繼承

非靜態構造函數:

當有多個構造函數時,在實例化的時候根據你提供的參數編譯器決定調用哪一個構造函數

當構造函數是私有的private時 有且只有一個構造函數時 類不能實例化

構造函數詳解