C# 实现简单的单例模式(懒汉式)

简介: 单例模式确保一个类仅存在一个实例,并提供全局访问点。通过私有构造函数防止外部实例化,结合静态属性和延迟初始化实现线程安全的唯一实例,常用于日志、配置管理等场景。

保证一个类只有一个实例,并提供一个全局访问点。

public class Singleton
{
    // 私有静态实例
    private static readonly Lazy<Singleton> _instance = new Lazy<Singleton>(() => new Singleton());
    // 私有构造函数,防止外部实例化
    private Singleton() { }
    // 公共访问属性
    public static Singleton Instance => _instance.Value;
    // 测试方法
    public void ShowMessage() => Console.WriteLine("单例模式测试,实例哈希码: " + GetHashCode());
}
// 调用示例
public static void TestSingleton()
{
    var s1 = Singleton.Instance;
    var s2 = Singleton.Instance;
    s1.ShowMessage();
    s2.ShowMessage();
    Console.WriteLine("是否为同一实例: " + (s1 == s2)); // True
}
相关文章
|
4月前
|
C#
C# 条件判断:if-else 与 switch 的实用场景
条件判断是流程控制的核心。if-else适用于多级条件判断,如根据积分决定会员等级;switch适用于多值匹配,C# 7.0+支持字符串和数值匹配,可清晰处理会员等级对应的优惠策略。
|
4月前
|
存储 C#
C# 实现简单的备忘录模式
备忘录模式在不破坏封装性的前提下,捕获并保存对象的内部状态,以便后续恢复。通过原发器创建备忘录,管理者存储备忘录,可实现状态回滚。
|
4月前
|
C#
C# 实现简单的 Excel 数据写入工具
基于EPPlus库实现C#将数据写入Excel文件,支持自定义表头与多行数据,自动调整列宽,操作简便,适用于非商业场景的数据导出需求。
|
4月前
|
C#
C# 异常处理:try-catch-finally 避免程序崩溃
异常处理用于捕获运行时错误(如空引用、文件不存在),确保程序稳定。通过 `try` 包裹可能出错的代码,`catch` 捕获并处理异常,`finally` 确保资源释放等操作始终执行,提升代码健壮性。
|
4月前
|
设计模式 算法 C#
C# 实现简单的观察者模式
简介:本文介绍了C#中三种常用设计模式的实现:观察者模式用于解耦主题与观察者,策略模式封装可互换的算法族,工厂模式则隐藏对象创建细节,提升代码可维护性与扩展性。
|
5月前
|
人工智能 自然语言处理 搜索推荐
企业 AI 客服系统怎么建?免费工具推荐、成本测算与选型攻略
2025年,AI客服系统成为企业提升服务效率与客户体验的核心工具。面对用户对7×24小时响应、个性化交互的高要求,传统客服难以应对。AI客服通过自然语言处理与自动化技术,实现高效应答、降本增效,并释放人力处理复杂问题。超60%企业已在客户触点部署AI能力,智能客服正从“可选”变为“必备”。
|
C# 开发者
【捞底干货】C#中equals和==运算符的区别
【捞底干货】C#中equals和==运算符的区别
647 1
|
图形学
【unity实战】时间控制 昼夜交替 四季变化 天气变化效果
【unity实战】时间控制 昼夜交替 四季变化 天气变化效果
1295 0
|
存储 Java 数据库连接
MyBatis的类型处理器TypeHandler与自定义实现
MyBatis的类型处理器TypeHandler与自定义实现
1722 0
|
机器学习/深度学习 编解码 自然语言处理
【虚拟人综述论文】Human-Computer Interaction System: A Survey of Talking-Head Generation
【虚拟人综述论文】Human-Computer Interaction System: A Survey of Talking-Head Generation