VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > .net教程 >
  • ASP.net教程之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" };
        }
复制代码

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

相关教程