C#面:请写出C#中的单例模式

单例模式是一种常用的设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问该实例。

以下是一种常见的C#中的单例模式实现方式:

cs 复制代码
public class Singleton
{
    private static Singleton instance;
    private static readonly object lockObj = new object();

    private Singleton()
    {
        // 私有构造函数,防止外部实例化
    }

    public static Singleton Instance
    {
        get
        {
            if (instance == null)
            {
                lock (lockObj)
                {
                    if (instance == null)
                    {
                        instance = new Singleton();
                    }
                }
            }
            return instance;
        }
    }

    // 其他成员方法和属性...
}

Singleton类的构造函数被声明为私有,这样就防止了外部代码通过新关键字实例化该类。通过静态属性Instance来获取Singleton类的唯一实例。在Instance的get访问器中,使用双重检查锁定(double-checked locking)来确保线程安全性和性能。

使用单例模式的好处是可以节省系统资源,避免多个实例的创建和销毁,同时也可以提供一个全局访问点,方便其他代码使用该实例。

相关推荐
倾听一世,繁花盛开9 分钟前
Java语言程序设计——篇二(1)
java·开发语言·eclipse
华子w90892585916 分钟前
60页论文参考:基于Java+SpringMvc+Vue技术的智慧校园系统设计与实现
java·开发语言·vue.js·论文阅读
engchina18 分钟前
解析 pdfminer layout.py LAParams类及其应用实例
开发语言·python·pdfminer
不死鸟.亚历山大.狼崽子21 分钟前
python库(6):Pygments库
linux·开发语言·python
Thunter_21 分钟前
QT中常用英语单词
开发语言·qt
2301_7818335222 分钟前
深入探索Python库的奇妙世界:赋能编程的无限可能
开发语言·python
java66666888828 分钟前
使用Java构建一个高性能的消息队列系统
java·开发语言·linq
lsx20240628 分钟前
C++ 日期 & 时间
开发语言
小李很执着35 分钟前
【掌握C++ string 类】——【高效字符串操作】的【现代编程艺术】
开发语言·c++·后端·学习
VinciYan41 分钟前
编译Open Cascade(OCC)并使用C#进行开发
c#·开源软件·cad·occ·open cascade·三维cad