zoukankan      html  css  js  c++  java
  • effective c#读书笔记之二 静态成员的初始化

    1、时间顺序:静态成员的初始化=》非静态成员的初始化==》构造函数=》基类成员初始化=》基类构造函数

    2、因为静态成员初始化是由CLR调用的,如果出错,则程序会崩溃。所以,常常使用构造函数来初始化静态成员。

    static MySingleton( )
    {
      try {
        _theOneAndOnly = new MySingleton( );
      } catch
      {
        // Attempt recovery here.
      }
    }

     3、一段好的测试代码,测试对静态成员初始化的理解。

    class A
    {
     public static int X = B.Y;
     static A()
     {
      ++X;
     }
    }
    
    class B
    {
     public static int Y = A.X;
     static B()
     {
      ++Y;
     }
    }

    Debug.WriteLine(A.X.ToString());
    Debug.WriteLine(B.Y.ToString());

    输出的结果是:2和1。

    有一点必须知道:静态成员的初始化和构造函数只会执行一次。第二次访问时,就不再执行了。

    ps:”学习Java的乐趣就在于用成熟的框架解决业务中的问题,学习Python的乐趣在于写出简洁的代码,学习C#的乐趣就在于跟随微软一步一步体验体验写代码方式的改变。“

  • 相关阅读:
    rsync
    SAMBA服务搭建
    top,job,user,file,alias
    FTP服务搭建
    shell_script2
    shell_script1
    shell_processing
    shell_advanced
    shell_basic
    docker搭建私有仓库遇到的坑 http: server gave HTTP response to HTTPS client
  • 原文地址:https://www.cnblogs.com/Benjamin/p/3135696.html
Copyright © 2011-2022 走看看