• Effective C# Item13:使用静态构造器初始化静态类成员


        在创建类型的任何实例之前,我们需要初始化这个类型中的静态成员变量,C#可以通过静态初始化器或者静态构造函数来完成这个任务,其中静态构造器是一个特殊的函数,它会在一个类的任何方法、变零或者属性被访问之前执行。

        我们不应该使用类型的示例构造函数或者类型中的某些非静态方法来初始化类型的静态成员变量。

        如果静态成员初始化的过程不复杂,那么我们可以在类型的初始化器中对其进行初始化;如果静态成员初始化时,需要执行大量的逻辑操作,那么我们可以将其初始化的过程提取到静态构造函数中。

        我们可以使用静态构造函数来实现设计模式中的单例模式,如以下代码所示。

    代码
    1 public class MySingleton
    2 {
    3 private static readonly MySingleton _theOneAndOnly =
    4 new MySingleton( );
    5
    6 public static MySingleton TheOnly
    7 {
    8 get
    9 {
    10 return _theOneAndOnly;
    11 }
    12 }
    13
    14 private MySingleton( )
    15 {
    16 }
    17
    18 // remainder elided
    19  }

        和示例初始化器类似,静态初始化器会在静态构造函数中的显式代码之前执行,同样,静态初始化器也会在基类的静态构造函数之前执行。

        静态初始化器和静态构造函数为我们类型中的静态成员提供了最清晰的初始化方式,使用这种方法,代码既容易阅读,也不易发生错误。C#语言使用它们很好的解决了其他语言中静态成员初始化的问题。

  • 相关阅读:
    让Editplus自动格式化js、css、html。。。
    超强JavaScript编辑器WebStorm上安装zenCoding
    魔哥Css:背景色透明,内容不透明之终极方法!兼容(不支持ie6)。
    支持二次开发的Zigbee模块(SNAP技术)
    XI Monitor Analysis
    SAP 增强方式
    查找业务对应的IDOC类型(HELP)
    POS DM 学习URL
    IDOC MSGRN
    XI 安装MS SQLSERVER JDBC 驱动
  • 原文地址:https://www.cnblogs.com/wing011203/p/1644519.html
Copyright © 2020-2023  润新知