C# 单例模式

Posted 胡文杰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 单例模式相关的知识,希望对你有一定的参考价值。

单例模式:一个类只能有一个实例对象。这样就决定了它有以下几个特点。

  1. 不能被继承,那得用sealed修饰类;
  2. 将构造函数隐藏起来,private构造函数;
  3. 公有静态方法创建单一实例;
  4. 为了保证多线程情况下的单一实例原则,还得加个线程锁;

简单代码实现如下:

public sealed class Singletion  
{  
    private static Singletion _singletion = null;  
  
    // 线程锁辅助对象  
    private static readonly object _lockObj = new object();  
  
    private Singletion()  
    {  
    }  
  
    public static Singletion Instance()  
    {  
        // 保证线程安全,多线程情况下只有一个对象实例  
        if (_singletion == null)  
        {  
            lock(_lockObj)  
            {  
                _singletion = new Singletion();  
            }  
        }  
  
        return _singletion;  
    }  
}  

参考:
设计模式笔记:单件模式(Singleton)

以上是关于C# 单例模式的主要内容,如果未能解决你的问题,请参考以下文章

线程安全的 C# 单例模式

C#中几种单例模式

C#如何实现进程单例运行

C# 单例模式

C# 单例表单模式,如何运行 2 个或更多表单? [关闭]

《C#零基础入门之百识百例》(四十五)类的属性 -- 单例模式