• 关于静态构造函数


    程序如下所示

        class Program
        {
            static void Main(string[] args)
            {

                1、 Singleton.getInstance();

                2、Singleton s = new Singleton();
                Console.ReadLine();
            }
        }

    public  class Singleton
        {
            private static int instance;
            public Singleton()
            {
                Console.WriteLine("no static Singleton");
            }
            static Singleton()
            {
                Console.WriteLine("static Singleton");
            }
            public static void getInstance()
            {
                if (instance == 0)
                {
                    instance = instance+1;
                }
                Console.WriteLine( instance+"");
            }
        }

    1、 Singleton.getInstance();此时程序会先执行静态构造函数,再调用getInstance()方法,程序会先输出“static Singleton” 再输出“1”

    2、Singleton s = new Singleton();
    此时调先执行 静态构造函数,再调用非静态构造函数,最后调用getInstance()方法,输出“static Singleton” 再输出“no static Singleton”最后输出“1”

    注:静态构造函数只执行一次,当子类多次实例化时候,父类的静态构造函数只执行一次,父类的非静态构造函数则会多次执行。

  • 相关阅读:
    c++ heap学习
    超长正整数相加
    Search Insert Position
    strcpy与strcat函数原型
    C++基本数据类型占字节数
    详解指针的指针
    Google 超分辨率技术 RAISR
    elementui resetFields方法重置表单失败
    VS 点击文件自动定位到解决方案资源管理器中文件所在目录位置
    mybatis中LIKE模糊查询的几种写法以及注意点
  • 原文地址:https://www.cnblogs.com/yidianfeng/p/2262904.html
Copyright © 2020-2023  润新知