
.net 4种单例模式
发布日期:2021-05-09 02:10:05
浏览次数:11
分类:博客文章
本文共 2097 字,大约阅读时间需要 6 分钟。
本文介绍了C#下关于单例的4种实现方法。
using System;using System.Collections.Generic;using System.Text;namespace SingletonDemo{ ////// 1、普通单例 /// public class SingletonA { private static SingletonA _instance = null; private SingletonA() { } public static SingletonA CreateInstance() { if (_instance == null) { _instance = new SingletonA(); } return _instance; } } ////// 2、线程安全单例 /// public class SingletonB { private volatile static SingletonB _instance = null; private static readonly object lockHelper = new object(); private SingletonB() { } public static SingletonB CreateInstance() { if (_instance == null) { lock (lockHelper) { if (_instance == null) _instance = new SingletonB(); } } return _instance; } } ////// 3、使用.net特性的支持多线程的单件模式代码 /// public sealed class SingletonC { private SingletonC() { } public static readonly SingletonC Instance = new SingletonC(); } ////// 4、使用 C# 2.0 泛型来完成单例模式的重用 /// ///public class SingletonProvider where T : new() { SingletonProvider() { } public static T Instance { get { return SingletonCreator.instance; } } class SingletonCreator { static SingletonCreator() { } internal static readonly T instance = new T(); } } /// /// 4、业务类demo /// public class TestClass { private string _createdTimestamp; public TestClass() { _createdTimestamp = DateTime.Now.ToString(); } public void Write() { Console.WriteLine(_createdTimestamp); } } ////// 4、范型单例示例 /// public class demo { private void dosomething() { SingletonProvider.Instance.Write(); } }}
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月10日 10时17分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vue项目通过vue.config.js配置文件进行proxy反向代理跨域
2019-03-05
android:使用audiotrack 类播放wav文件
2019-03-05
聊聊我的五一小假期
2019-03-05
数据库三个级别封锁协议
2019-03-05
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
2019-03-05
ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
2019-03-05
SLAM学习笔记-求解视觉SLAM问题
2019-03-05
程序员应该知道的97件事
2019-03-05
create-react-app路由的实现原理
2019-03-05
openstack安装(九)网络服务的安装--控制节点
2019-03-05
shell编程(六)语言编码规范之(变量)
2019-03-05
vimscript学习笔记(二)预备知识
2019-03-05
Android数据库
2019-03-05
HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
2019-03-05
STM8 GPIO模式
2019-03-05
23种设计模式一:单例模式
2019-03-05
Qt中的析构函数
2019-03-05
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
2019-03-05
【单片机开发】智能小车工程(经验总结)
2019-03-05