1.静态构造函数用于初始化类中的静态数据或执行仅需执行一次的特定操作。
2.静态构造函数将在创建第一个实例或引用类中的静态成员之前自动调用。
3.静态构造函数具有以下特性:静态构造函数不使用访问权限修饰符修饰或不具有参数;类或结构体中只能具有一个静态构造函数;静态构造函数不能继承或重载;静态构造函数不能直接调用,仅可以由公共语言运行时 (CLR) 调用;用户无法控制程序中静态构造函数的执行时间;在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数以初始化类;静态构造函数会在实例构造函数之前运行。
using System; namespace c.biancheng.net { class Demo { public static int num = 0; // 构造函数 Demo(){ num = 1; } // 静态构造函数 static Demo(){ num = 2; } static void Main(string[] args) { Console.WriteLine("num = {0}", num); Demo Obj = new Demo(); Console.WriteLine("num = {0}", num); Console.Read(); } } }
当执行上面程序时,会首先执行public static int num = 0
,接着执行类中的静态构造函数,此时 num = 2,然后执行 Main 函数里面的内容,此时打印 num 的值为 2,接着初始化 Demo 类,这时会执行类中的构造函数,此时 num 会重新赋值为 1,所以上例的运行结果如下所示:
num = 2
num = 1