zoukankan      html  css  js  c++  java
  • 静态构造器(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

     

  • 相关阅读:
    python常见报错解释
    selenium键盘操作
    html常用属性,标签,选择器
    模块(三)
    类的继承
    java接口
    java新建文件夹中的绝对路径和相对路径的理解以及中文乱码问题
    Java IO
    JS中的排序算法(-)冒泡排序
    CSS+DIV布局中absolute和relative的区别
  • 原文地址:https://www.cnblogs.com/MrZivChu/p/BaseKnowledge_staticConstructor.html
Copyright © 2011-2022 走看看