zoukankan      html  css  js  c++  java
  • c# 静态构造函数与私有构造函数共存

    在使用静态构造函数的时候应该注意几点:

      1、静态构造函数既没有访问修饰符,也没有参数。因为是.NET调用的,所以像public和private等修饰符就没有意义了。
      
      2、是在创建第一个类实例或任何静态成员被引用时,.NET将自动调用静态构造函数来初始化类,也就是说我们无法直接调用静态构造函数,也就无法控制什么时候执行静态构造函数了。

      3、一个类只能有一个静态构造函数。

      4、无参数的构造函数可以与静态构造函数共存。尽管参数列表相同,但一个属于类,一个属于实例,所以不会冲突。

      5、最多只运行一次。

      6、静态构造函数不可以被继承。

      7、如果没有写静态构造函数,而类中包含带有初始值设定的静态成员,那么编译器会自动生成默认的静态构造函数。

      exp:

      public class TestClass
      {
        private TestClass()
        {
          Console.WriteLine("私有");
        }

        public void PublicFunc()
        {
          Console.WriteLine("方法");
        }

        private static readonly TestClass m_instance;
        public static TestClass Instance
        {
          get {return m_instance; }
        }
        static TestClass()
        {
          Console.WriteLine("静态");
          m_instance = new TestClass();
        }

        static void Main(string[] args)
        {
          TestClass.Instance.PublicFunc();
          Console.ReadKey();
        }

      }

      执行结果如下:

      

      先调用静态构造函数,在静态构造函数中新建类的实例,然后调用类的私有构造函数,最后调用类的公共方法

      

  • 相关阅读:
    Dll版本管理
    线程池ThreadPool
    关于sitemesh和freemark在struts2中的一些问题总结
    Google 怎么搜索
    android 设计模式
    android webview
    ios 基础数据类型
    android 常用
    android Handler vs Timer
    网站
  • 原文地址:https://www.cnblogs.com/yeshenmeng/p/9417897.html
Copyright © 2011-2022 走看看