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

在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
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~