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
}
相关文章
|
3月前
|
C#
C# 实现简单的 Excel 数据写入工具
基于EPPlus库实现C#将数据写入Excel文件,支持自定义表头与多行数据,自动调整列宽,操作简便,适用于非商业场景的数据导出需求。
|
3月前
|
设计模式 算法 C#
C# 实现简单的观察者模式
简介:本文介绍了C#中三种常用设计模式的实现:观察者模式用于解耦主题与观察者,策略模式封装可互换的算法族,工厂模式则隐藏对象创建细节,提升代码可维护性与扩展性。
|
3月前
|
C#
C# 异常处理:try-catch-finally 避免程序崩溃
异常处理用于捕获运行时错误(如空引用、文件不存在),确保程序稳定。通过 `try` 包裹可能出错的代码,`catch` 捕获并处理异常,`finally` 确保资源释放等操作始终执行,提升代码健壮性。
|
3月前
|
存储 C#
C# 实现简单的备忘录模式
备忘录模式在不破坏封装性的前提下,捕获并保存对象的内部状态,以便后续恢复。通过原发器创建备忘录,管理者存储备忘录,可实现状态回滚。
|
3月前
|
C#
C# 条件判断:if-else 与 switch 的实用场景
条件判断是流程控制的核心。if-else适用于多级条件判断,如根据积分决定会员等级;switch适用于多值匹配,C# 7.0+支持字符串和数值匹配,可清晰处理会员等级对应的优惠策略。
|
C# 开发者
【捞底干货】C#中equals和==运算符的区别
【捞底干货】C#中equals和==运算符的区别
630 1
shared_ptr循环引用问题以及解决方法
shared_ptr循环引用问题以及解决方法
690 0
|
传感器 物联网 C#
Win10 IoT C#开发 4 - UART 串口通信
原文:Win10 IoT C#开发 4 - UART 串口通信 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,既可以开发设备UI与用户交互式操作,又可以控制GPIO等接口,使得原来嵌入式繁琐的开发变得简单。
2629 0
|
存储 关系型数据库 分布式数据库
PolarDB 开源版 通过rdkit 支撑生物、化学分子结构数据存储与计算、分析
背景PolarDB 的云原生存算分离架构, 具备低廉的数据存储、高效扩展弹性、高速多机并行计算能力、高速数据搜索和处理; PolarDB与计算算法结合, 将实现双剑合璧, 推动业务数据的价值产出, 将数据变成生产力.本文将介绍PolarDB 开源版 通过rdkit 支撑生物、化学分子结构数据存储与计...
801 0

热门文章

最新文章