当前位置: 移动技术网 > IT编程>开发语言>.net > C# static readonly 修饰符初始化变量

C# static readonly 修饰符初始化变量

2019年05月24日  | 移动技术网IT编程  | 我要评论

eee755,牛过中文网,喇叭天线

同事问了一个问题,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" };
        }

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网