1.静态代码块

/// <summary>
/// 静态代码块
/// 仅在第一次调用类的任何成员时自动执行
/// </summary>
public class SingletonStatic
{
private static readonly SingletonStatic _instance =null;
static SingletonStatic()
{
_instance = new SingletonStatic();
}
private SingletonStatic()
{ }
public static SingletonStatic Instance
{
get { return _instance; }
} }

2.内部类

   /// <summary>
/// 内部类
/// </summary>
public class SingletonInner
{
private SingletonInner()
{ }
public static SingletonInner Instance
{
get{ return InnerClass.inner; }
}
private class InnerClass
{
internal static readonly SingletonInner inner = new SingletonInner();
}
}

3.Lazy

    /// <summary>
/// Lazy单例
/// </summary>
public class SingletonLazy
{
private static readonly SingletonLazy _instance = new Lazy<SingletonLazy>().Value;
private SingletonLazy()
{ }
public SingletonLazy Instance
{
get { return _instance; }
} }

4.单例模式基类(转自https://www.cnblogs.com/zhouzl/archive/2019/04/11/10687909.html)

/// <summary>
/// https://www.cnblogs.com/zhouzl/archive/2019/04/11/10687909.html
/// </summary>
/// <typeparam name="T"></typeparam>
public abstract class Singleton<T> where T : class
{
// 这里采用实现5的方案,实际可采用上述任意一种方案
class Nested
{
// 创建模板类实例,参数2设为true表示支持私有构造函数
internal static readonly T instance = Activator.CreateInstance(typeof(T), true) as T;
}
private static T instance = null;
public static T Instance { get { return Nested.instance; } }
}
class TestSingleton : Singleton<TestSingleton>
{
// 将构造函数私有化,防止外部通过new创建
private TestSingleton() { }
}

最新文章

  1. JAVA格物致知基础篇:你所不知道的返回码
  2. [css] CSS3中的单位
  3. W3School-CSS 背景实例
  4. 我写了本破书-swift语言实战晋级
  5. python爬取糗百第一页的笑话
  6. [转]LoadRunner参数化详解
  7. UML类图新手入门级介绍
  8. paip.php eclipse output echo 乱码
  9. html a标签 图片边框和点击后虚线框的有关问题
  10. codevs 1222 信与信封问题(二分图的完美匹配)
  11. GET异步 请求图片步骤
  12. jQuery中的选择器(上)
  13. java多线程知识点概述
  14. Canvas Snippets
  15. [LeetCode] 系统刷题2_排列组合
  16. 矩阵的SVD分解
  17. Flutter常用组件(Widget)解析-Text
  18. mysql 5.7.16 忘记root 密码 如何修改root密码
  19. MQTT--入门【转】
  20. webapi 后台跳转 后台输出html和script

热门文章

  1. 201871010123-吴丽丽 《面向对象程序设计(Java)》第十周学习总结
  2. 201871010107-公海瑜《面向对象程序设计(java)》第十一周学习总结
  3. 201871010124-王生涛《面向对象程序设计(java)》第四周学习总结
  4. django学习-数据库配置-创建模型
  5. pycharm 有汉字的地方就有阴影
  6. redis常用命令手册大全
  7. [1018NOIP模拟赛]
  8. [POJ2336]Ferry Loading II
  9. windwos文件句柄数限制
  10. python读写、创建文件、文件夹等等