zoukankan      html  css  js  c++  java
  • C# static readonly 修饰符初始化变量

    同事问了一个问题,readonly和static啥区别?

    我就写了个demo运行了下:

            /***
             * 验证初始化次数:static只初始化一次,无论多少用户访问,在内存中只有一份
             *              readonly每个线程初始化一次
             *              如果是接口中使用service方法,最好使用static 或者static readonly修饰符
             * 验证修饰符初始化顺序:static readonly-->static-->无修饰符-->readonly
             * */
            public object obj = new object();  //③
            public readonly object readonlyObj = new object();   //④
            public static readonly object staictReadonlyObj = new object(); //①
            public static object staictObj = new object();  //②
    
    
            // GET api/values
            public IEnumerable<string> Get()
            {
                var o = obj.GetType();
                var o0 = readonlyObj.GetType();
                var o1 = staictReadonlyObj.GetType();
                var o2 = staictObj.GetType();
    
                return new string[] { "value1", "value2" };
            }

    验证了在多线程的情况下属性初始化次数,以及初始化的顺序。

  • 相关阅读:
    HDU 1711
    HDU 4135
    HDU 4462
    HDU 1969
    flask的nocache防止js不刷新
    python2.x里unicode错误问题
    使用SwingWork反而阻塞SwingUI
    利用JProfile 7分析内存OOM
    编译android的一些坑
    java jmenu的替代方案
  • 原文地址:https://www.cnblogs.com/dawenyang/p/10912739.html
Copyright © 2011-2022 走看看