C#怎么实现单例模式 C#设计模式之单例实现方法

admin 百科 14
推荐使用Lazy实现单例模式,线程安全且支持延迟初始化;其次可选静态构造函数方式(非延迟);DCL仅用于旧框架兼容。需注意避免滥用、优先考虑DI容器替代。

C#怎么实现单例模式 C#设计模式之单例实现方法-第1张图片-佛山资讯网

在C#中实现单例模式,核心是确保一个类只有一个实例,并提供全局访问点。最常用、最推荐的是静态构造函数 + 私有静态只读字段方式(线程安全、简洁、延迟初始化),.NET 4+ 也常用 Lazy<t></t> 实现。

懒加载 + Lazy(推荐,线程安全且简洁)

利用 .NET 内置的 Lazy<t></t> 类,天然支持线程安全的延迟初始化,代码清晰易懂:

  • 声明私有静态只读 Lazy<singleton></singleton> 字段
  • 通过属性暴露唯一实例(Value 触发首次创建)
  • 构造函数设为 private,防止外部 new
示例:

public sealed class Singleton
{
    private static readonly Lazy<Singleton> _instance = new Lazy<Singleton>(() => new Singleton());
<pre class="brush:php;toolbar:false;">public static Singleton Instance => _instance.Value;

private Singleton() { } // 禁止外部实例化

登录后复制

}

标签: 懒加载 microsoft c# 延迟加载 .net

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~