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

  • 相关阅读:
    开通了
    A computer hardware platform abstraction
    脑机接口入门概览
    JDK自带VM分析工具jps,jstat,jmap,jconsole
    泛型里的super和extend
    动态规划
    用二分法查找的套路(一)
    A computer hardware platform abstraction
    CentOS7安装JDK1.8
    CentOS7如何修改hostname
  • 原文地址:https://www.cnblogs.com/wing011203/p/1644519.html
Copyright © 2011-2022 走看看