C#中单例模式的三种写法示例
作者:junjie 时间:2023-05-04 19:28:25
第一种最简单,但没有考虑线程安全,在多线程时可能会出问题,不过俺从没看过出错的现象,表鄙视我……
public class Singleton
{
private static Singleton _instance = null;
private Singleton(){}
public static Singleton CreateInstance()
{
if(_instance == null)
{
_instance = new Singleton();
}
return _instance;
}
}
第二种考虑了线程安全,不过有点烦,但绝对是正规写法,经典的一叉
public class Singleton
{
private volatile static Singleton _instance = null;
private static readonly object lockHelper = new object();
private Singleton(){}
public static Singleton CreateInstance()
{
if(_instance == null)
{
lock(lockHelper)
{
if(_instance == null)
_instance = new Singleton();
}
}
return _instance;
}
}
第三种可能是C#这样的高级语言特有的,实在懒得出奇
public class Singleton
{
private Singleton(){}
public static readonly Singleton instance = new Singleton();
}
哦,shit!
标签:C#,单例模式
0
投稿
猜你喜欢
Java编程BigDecimal用法实例分享
2022-05-02 05:40:06
Java多线程Atomic包操作原子变量与原子类详解
2023-08-18 07:46:25
Java动态 代理和AOP应用示例
2023-11-26 07:45:02
C#利用DesignSurface如何实现简单的窗体设计器
2023-10-18 18:43:28
Java equals 方法与hashcode 方法的深入解析
2022-03-05 19:20:15
Spring实战之使用注解实现声明式事务操作示例
2021-08-19 07:16:07
使用Java代码来比较Android客户端版本号
2021-09-07 17:44:22
Android安装apk文件并适配Android 7.0详解
2022-11-11 01:41:28
Flink开发IDEA环境搭建与测试的方法
2023-02-21 21:20:46
DataGridView不显示最下面的新行、判断新增行、删除行操作
2022-11-26 16:14:36
使用@Order控制配置类/AOP/方法/字段的加载顺序详解
2023-09-05 17:34:35
SpringBoot集成POI导出Execl表格之统一工具类
2023-06-12 09:55:51
Java查找并高亮PDF文本过程解析
2022-02-17 07:20:32
全网最深分析SpringBoot MVC自动配置失效的原因
2021-07-20 03:53:25
简单总结C++中指针常量与常量指针的区别
2022-06-28 17:33:12
PowerManagerService之手动灭屏流程示例分析
2023-01-13 17:11:51
Java实现将txt文件转成xls文件的方法
2022-05-20 10:21:25
Json字符串转Java对象和List代码实例
2022-03-11 15:47:09
Java解析Excel内容的方法
2023-03-20 20:36:26
C#异步执行任务的方法
2022-02-27 15:02:41