logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C#23种设计模式(七)抽象工厂

是一种创建型设计模式,它提供了一种方式,可以创建一系列相关或相互依赖的对象,而无需指定它们的具体类。抽象工厂模式强调的是的概念,即每个工厂创建的对象属于一个系列。: 在Open方法中,分别创建了南昌工厂和上海工厂的实例,并使用它们创建对应的鸭脖和鸭架对象,然后调用Print方法打印信息。定义了创建鸭脖和鸭架的抽象方法。和分别实现了抽象工厂类,提供了创建南昌和上海鸭脖及鸭架的具体实现。YaBo和Ya

文章图片
#抽象工厂模式#c##设计模式
C#23种设计模式(二)备忘录模式

这种模式的核心思想是通过创建对象状态的快照(备忘录),并在需要时恢复到该快照状态,从而实现状态的管理。在代码中,MobileOwner类就是发起人,它维护联系人列表的状态,并提供创建备忘录和恢复状态的方法。:可以方便地保存多个状态,并在需要时恢复到任意一个之前的状态,适用于需要频繁保存和恢复状态的场景。管理角色不访问备忘录中的状态信息,只是负责保存和提供备忘录,这符合备忘录模式中管理角色的职责。当

文章图片
#设计模式#备忘录模式#c#
ModbusTcp协议

功能码是 Modbus TCP 协议中的核心指令,用于指定客户端希望服务器执行的操作。

#c#
C#泛型类

泛型类是可以支持多种数据类型的类,它允许在定义类时不指定具体数据类型,而是在使用时动态指定。核心作用:避免重复编写相似代码(如分别为intstringobject写相同逻辑的类),同时保证类型安全(编译时检查类型,避免装箱拆箱)。// 基本语法:类名后加<T>,T是类型参数(可自定义名称,如TData、TItem)public class 类名<T>// 可以使用T作为属性、方法参数、返回值的类型

#c#
C#中堆和栈的概念

对比项栈(Stack)堆(Heap)存储内容值类型数据、引用类型的引用引用类型的实际数据管理方式编译器自动分配 / 释放垃圾回收器(GC)自动管理速度极快(连续内存操作)较慢(需查找空闲内存)空间大小小(几 MB)大(GB 级)顺序先进后出,连续存储无序,随机存储典型用途临时变量、方法参数、局部变量对象、字符串、数组等大数据解释为什么值类型赋值是 “复制值”,引用类型赋值是 “复制地址”(如int

C#中结构(Struct)

结构(struct)是 C# 中一种值类型数据结构,用于封装小型相关数据。它与类(class)类似,可包含字段、属性、方法等成员,但本质是值类型(存储在栈上),而类是引用类型(存储在堆上)。核心特点值类型,赋值时直接复制数据(而非引用);适合存储小型、简单的数据(如坐标、颜色、日期等);不能被继承(密封类型),但可实现接口。// 基本语法访问修饰符 struct 结构名 : 接口1, 接口2...

#c#
C#中的服务注册剖析

服务注册是.NET 依赖注入(DI)体系中的核心操作,本质是将服务类型(接口 / 抽象类)与具体实现类型、生命周期绑定,并存储到 DI 容器中的过程。服务类型:对外暴露的抽象契约(通常是接口 / 抽象类),比如。实现类型:服务类型的具体实现类,比如。DI 容器:存储服务注册信息的 “容器”,程序运行时可从中 “取出”(解析)服务实例。生命周期:决定 DI 容器创建服务实例的规则,是服务注册的核心属

C# 值类型 / 引用类型 内存布局(栈、堆、托管堆)

栈 = 快、自动释放、存值类型 / 引用指针托管堆 = 慢、GC 管理、存引用类型真实数据值类型 = 数据自己存自己引用类型 = 栈存地址,堆存数据class 里的值类型 → 存在堆上。

#c#
C# 变量:生命周期、作用域、变量逃逸

变量本来应该在栈上,但是因为被 “外部引用”,被迫跑到堆上,无法在栈上自动释放→ 这就叫逃逸。逃逸 = 局部变量逃离了它的局部作用域,生命周期被延长了。作用域:变量能被访问的代码范围生命周期:变量在内存中存活的时间变量逃逸:局部变量被迫从栈跑到堆,生命周期被延长逃逸危害:增加 GC 压力,降低性能核心优化:尽量让局部变量不逃逸,留在栈上。

#c#
C# 继承、多态、虚方法表(VTable)原理

摘要:继承允许子类复用父类成员并重写方法,多态通过父类引用调用子类实现。C#使用虚方法表(VTable)实现多态:每个类拥有独立VTable,子类复制父类VTable并替换重写方法地址。当父类引用调用虚方法时,CLR通过对象类型指针查找VTable,动态执行子类方法。virtual和override是关键,而new不参与多态。VTable机制确保运行时根据实际对象类型调用正确方法,这是多态的核心实

    共 18 条
  • 1
  • 2
  • 请选择