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)来确保线程安全性和性能。

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

相关推荐
纯.Pure_Jin(g)4 分钟前
【Python练习四】Python 算法与进阶特性实战:数组、序列化与位运算专项练习(3道经典练习带你巩固基础——看完包会)
开发语言·vscode·python
阿猿收手吧!7 分钟前
【C++】模块:告别头文件新时代
开发语言·c++
星火开发设计12 分钟前
虚析构函数:解决子类对象的内存泄漏
java·开发语言·前端·c++·学习·算法·知识
t1987512819 分钟前
MATLAB水声信道建模:方法、实现与应用
开发语言·matlab
maplewen.22 分钟前
C++ 多态原理深入理解
开发语言·c++·面试
龙山云仓22 分钟前
No152:AI中国故事-对话祖冲之——圆周率与AI精度:数学直觉与极限探索
大数据·开发语言·人工智能·python·机器学习
琅琊榜首202027 分钟前
AI+Python实操指南:用编程赋能高质量网络小说创作
开发语言·人工智能·python
tbRNA30 分钟前
C++ string类
开发语言·c++
ccLianLian31 分钟前
算法基础·C++常用操作
开发语言·数据结构·c++
柒儿吖32 分钟前
基于 lycium 在 OpenHarmony 上交叉编译 komrad36-CRC 完整实践
c++·c#·harmonyos