静态构造器(static constructor)

1、定义:

      静态构造函数是实现对一个类进行初始化的方法成员. 它一般用于对静态数据的初始化. 静态构造函数不能有参数,不能有修饰符而且不能被调用,当类被加载时,类的静态构造函数自动被调用.

2、特点:

     在一个程序的执行过程中,静态构造器最多只执行一次.

3、执行顺序:

  •    静态构造器在任何类的静态成员被引用之前执行.
  •  静态构造器在任何类的实例变量被分配之前执行.
  •    静态构造器在类的静态成员初始化之后执行.或者说编译器会将静态成员初始化语句转换成赋值语句放在静态构造器执行的最开始.

4、实例: 

class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("静态变量值 = " + Person.time);
            Person p1 = new Person();
            Thread.Sleep(10);
            Person p2 = new Person();
            Console.ReadKey();
        }
    }
    class Person
    {
        public static int time = DateTime.Now.Millisecond;
        static Person()
        {
            Thread.Sleep(10); // 防止电脑运行太快,看不出效果
            Console.WriteLine("静态构造器 = " + DateTime.Now.Millisecond);
        }
        public Person()
        {
            Console.WriteLine("无参构造器 = " + DateTime.Now.Millisecond);
        }
    }

5、运行结果:

可以看出:

1、静态变量是最先初始化的

2、静态构造函数里面其他的内容是在静态变量初始化好之后才执行的

3、静态构造函数永远只执行一次

6、上面程序的静态构造函数类似这样执行的

        static Person()
        {            
            public static int time = DateTime.Now.Millisecond;
            Thread.Sleep(10); // 防止电脑运行太快,看不出效果
            Console.WriteLine("静态构造器 = " + DateTime.Now.Millisecond);
        }

7、参考

    http://www.cnblogs.com/JackieYang/archive/2010/02/23/1671724.html  ymingkm

 作者:MrZivChu

2013-08-02  17:15:25

 

转载于:https://www.cnblogs.com/MrZivChu/p/BaseKnowledge_staticConstructor.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值