• 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#语言使用它们很好的解决了其他语言中静态成员初始化的问题。

  • 相关阅读:
    PHP使用Memcache来存储session 其他【转载】
    Linux 学习记录 20170218
    php 数组去重
    关于php的array_diff和array_diff_assoc的使用总结
    使用谷歌浏览器调试WEB前端的一些必备调试技巧
    MySql 赋值操作符"="与":="
    移动设备检测类Mobile_Detect.php
    PHP Filter 函数 日常可用
    以符合人类阅读的方式打印php数组【转载】
    JavaWeb:HttpSession(一)
  • 原文地址:https://www.cnblogs.com/wing011203/p/1644519.html
Copyright © 2020-2023  润新知