特性:
1.静态构造函数没有参数也没有访问修饰符。
2.没有编写静态构造函数,如果这个类中有静态字段,那么会生成默认的构造函数。
3.调用任何静态成员之前,程序将自动调用静态构造函数初始化类(我们无法控直接调用静态构造函数,也无法控制静态构造函数什么时候被执行)。
4.如果类中有静态的Main方法,那么此时访问该类时Debug顺序为:静态字段-->静态构造函数-->静态方法。
5.如果访问一个类的静态字段,那么返回该静态的字段的时间为走完静态构造函数之后。
6.如果直接访问一个静态方法或者属性等,那么此时的Debug顺序为:静态构造函数-->静态方法。
7.一个类中常规的构造函数可以和静态的构造函数共存。
8.一个类中,最多只能有一个静态构造函数而常规的构造函数可以有多个。
9.静态构造函数只能被调用一次。
10.静态构造函数不可以被继承。
示例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Test { public class TestA { public static int a; static TestA() { a = TestB.b + 3; } } public class TestB { public static int b=TestA.a+3; static void Main() { Console.WriteLine("a={0},b={1}",TestA.a,TestB.b); Console.ReadLine(); } } }
结果:
a=3,b=6