C# static readonly 修飾符初始化變量

同事問了一個問題,readonly和static啥區別?api

我就寫了個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" }; }

驗證了在多線程的狀況下屬性初始化次數,以及初始化的順序。spa

相關文章
相關標籤/搜索