首先构造函数是为了给初始化对象赋初值
构造函数大类分为无参构造函数和有参构造函数,其次是静态和非静态构造函数
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 }
一个类中可以自定义多个构造函数
其中静态构造函数特殊:
静态构造函数一个类中只能定义一个,而且最多只能运行一次
当类中的静态成员有初始值时,没有声明静态构造函数,那么编译器会自动生成默认的静态构造函数。
静态构造函数不可以被继承
非静态构造函数:
当有多个构造函数时,在实例化的时候根据你提供的参数编译器决定调用哪一个构造函数
当构造函数是私有的private时 有且只有一个构造函数时 类不能实例化
原文:http://www.cnblogs.com/liuhuimh/p/7419990.html