码迷,mamicode.com
首页 > Windows程序 > 详细

c# 单例 按需创建

时间:2019-06-10 11:57:13      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:let   instance   nested   stat   new   code   ted   定义   singleton   

   public sealed class Singleton
    {
        public Singleton() { }

        public static Singleton Instance
        {
            get { return Nested.instance; }
        }

        class Nested
        {
            static Nested() { }
            internal static readonly Singleton instance = new Singleton();
        }

    }

在内部定义了一个私有类型Nested,当第一次用到这个嵌套类型的时候,会调用静态构造函数创建Singleton的实例instance。类型Nested只在属性Singleton.Instance中被用到,由于其私有属性,其他人无法使用Nested。因此当我们第一次试图通过属性Singleton.Instance得到Singleton的实例时,会自动调用Nested的静态构造函数创建实例instance。如果我们不调用Singleton.Instance,那么就不会触发.NET运行时调用Nested,也不会创建实例,这样就做到了按需创建。

 

摘自《剑指offer》

c# 单例 按需创建

标签:let   instance   nested   stat   new   code   ted   定义   singleton   

原文地址:https://www.cnblogs.com/littlebye/p/10996840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!