当前位置: 首页 > news >正文

C#单例模式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _3._3._6_单例模式
{public class Singleton{private static Singleton s_instance;private int _state;private Singleton(int state) { _state = state;}public static Singleton Instance{get => s_instance ?? (s_instance = new Singleton(42));}}
}

这段代码是一个C#语言实现的单例模式示例。单例模式是一种常用的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。

## 概括性总结

- 类定义:Singleton 类实现了单例模式。
- 私有静态实例:private static Singleton s_instance用于存储类的唯一实例。
- 私有构造函数:private Singleton(int state) 确保外部无法直接创建类的实例。
- 公共静态属性:public static Singleton Instance 提供全局访问点,确保全局只有一个实例。

## 详细解析
1. 命名空间:namespace _3._3._6_单例模式 定义了类的命名空间,用于组织代码。

2. 类定义: 
  - public class Singleton 定义了一个名为 Singleton 的公共类。

3. 私有静态实例:
- private static Singleton s_instance;
- 这是一个静态成员,用于存储类的唯一实例。它是私有的,这意味着它只能在类内部被访问和修改。

4. 私有构造函数
- private Singleton(int state)
- 这是一个私有构造函数,它接受一个整型参数 state。由于构造函数是私有的,因此外部代码无法直接创建 Singleton 类的实例。
- 在构造函数内部,_state = state; 将传入的 state 值赋给 _state 成员变量。

5. 公共静态属性:
- public static Singleton Instance
- 这是一个公共静态属性,用于提供对唯一实例的访问。
- get => s_instance ?? (s_instance = new Singleton(42));
- 这个属性使用了 C# 的空合并运算符 (??)。当 s_instance 为 null时,它会创建一个新的 Singleton实例,并将42作为状态传递给构造函数。如果s_instance` 已经存在,则直接返回该实例。
- 这确保了无论多少次调用 Instance 属性,都只有一个 Singleton 实例。
 


http://www.mrgr.cn/news/2051.html

相关文章:

  • 写一个githubDemo
  • Linux搭建环境:从零开始掌握基础操作(二)
  • 螺纹钢生产线中测径仪对基圆和负公差的测量和影响
  • ???牛客周赛55:虫洞操纵者
  • 【特殊文件---properties】
  • c语言网络编程
  • 欧拉远程桌面 安装tigervnc
  • 【Mybatis-plus】Mybatis-plus的踩坑日记之速查版
  • C语言---栈
  • UE网络架构和数据通信学习笔记
  • 企业高性能web服务器
  • 视频孪生技术在智慧水利(水务)场景中的典型应用展示
  • Java 细节特性
  • 前端工程化-05.Vue项目开发流程
  • 【HarmonyOS】鸿蒙应用蓝牙功能实现 (二)
  • 鸿蒙UIAbility组件概述(一)
  • Qt下使用QtPdfium处理PDF文档
  • 极速闪存启动:SD与SPI模式的智能初始化指南
  • 24年银行从业资格考试报名照规格要求
  • Linux执行脚本报错:-bash: ./mylife.sh: /bin/sh^M: bad interpreter: Text file busy