03 2024 档案

摘要:MQTT介绍 MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的轻量级消息传输协议。 它是在TCP/IP协议上构建的,用于在物联网(IoT)等资源受限的设备和低带宽、高延迟或不稳定的网络环境中进行通信。 特点 MQTT协议的特点包括: 轻量级 阅读全文
posted @ 2024-03-12 07:05 甜饼怪2030 阅读(113) 评论(0) 推荐(0) 编辑
摘要:三种服务的生命周期:Singleton、Scoped 和 Transient Singleton Singleton(单例):这种服务只会被创建一次,并且在整个应用程序中重复使用。 这意味着所有使用这种服务的类都会得到同一个服务实例。这种服务适合用于创建成本高昂或需要全局共享的服务, 例如数据库连接 阅读全文
posted @ 2024-03-12 07:05 甜饼怪2030 阅读(337) 评论(0) 推荐(0) 编辑
摘要:MQTT程序_客户端和服务端 服务端 using System; using System.Net; using System.Threading.Tasks; using DotNetty.Buffers; using DotNetty.Channel; using DotNetty.Channe 阅读全文
posted @ 2024-03-12 07:05 甜饼怪2030 阅读(52) 评论(0) 推荐(0) 编辑
摘要:MQTT 协议 在 C# 中使用 MQTT 协议,您可以使用以下步骤: 1. 选择 MQTT 客户端库 C# 中有多个 MQTT 客户端库可供选择,例如: MQTTnet: [移除了无效网址] Paho MQTT: [移除了无效网址] uMQTT: [移除了无效网址] 选择哪个库取决于您的具体需求和 阅读全文
posted @ 2024-03-12 07:05 甜饼怪2030 阅读(338) 评论(0) 推荐(0) 编辑
摘要:两种IOC容器注入的类型 基于接口的注入 在基于接口的注入中,您使用接口来定义依赖项。这允许您在不更改代码的情况下轻松地切换依赖项的不同实现。 代码示例: public interface IMyDependency { void DoSomething(); } public class MyCl 阅读全文
posted @ 2024-03-04 23:19 甜饼怪2030 阅读(20) 评论(0) 推荐(0) 编辑
摘要:依赖注入(DI)的三种常见方法 构造函数注入:这是最常用的注入方式,它通过类的构造函数传递依赖对象。 方法注入:依赖对象通过类的方法传递,而不是在构造时。 属性注入:依赖对象直接设置到类的属性上。这种方式不是所有DI容器都支持,但一些容器如Autofac支持。 下面是一个简单的代码示例来说明这些概念 阅读全文
posted @ 2024-03-04 23:19 甜饼怪2030 阅读(80) 评论(0) 推荐(0) 编辑
摘要:依赖注入和控制反转 在.NET中,依赖注入 (DI) 是一种技术,用于实现控制反转 (IoC),它允许将类的依赖关系通过构造函数、方法或属性来注入。这样可以提高代码的模块化和可测试性。 IServiceCollection 是一个服务集合,用于注册应用程序中的服务和组件。这些服务之后可以通过 ISe 阅读全文
posted @ 2024-03-04 23:18 甜饼怪2030 阅读(10) 评论(0) 推荐(0) 编辑
摘要:深拷贝 深拷贝是一种克隆类型,其中原始对象的所有字段和属性都会被复制到克隆中,包括嵌套对象。这意味着对克隆的任何更改都不会影响原始对象。 ICloneable 接口 ICloneable 接口允许 .NET 对象创建自身的一个副本,称为克隆。克隆与原始对象具有相同的值,但它们是独立的对象。 实现 I 阅读全文
posted @ 2024-03-04 23:18 甜饼怪2030 阅读(10) 评论(0) 推荐(0) 编辑
摘要:.NET 中 IDisposable 接口的作用和使用 IDisposable 接口 是 .NET 框架中定义的一个接口,用于释放非托管资源。非托管资源是指由操作系统或其他外部库管理的资源,例如文件句柄、数据库连接和网络套接字。 IDisposable 接口的作用 是提供一种标准的方式来释放非托管资 阅读全文
posted @ 2024-03-04 23:18 甜饼怪2030 阅读(91) 评论(0) 推荐(0) 编辑
摘要:C# 中五大集合类及其使用示例 C# 中提供了五种常用的集合类: 主要内容: List:可变大小的列表,可以存储任何类型的元素。 Dictionary<TKey, TValue>:键值对集合,可以根据键快速查找值。 HashSet:不包含重复元素的哈希集合。 Stack:后进先出 (LIFO) 的堆 阅读全文
posted @ 2024-03-03 23:05 甜饼怪2030 阅读(139) 评论(0) 推荐(0) 编辑
摘要:C# 中字符串 string.Empty、"" 和 null 三者的区别 1. string.Empty string.Empty 是一个表示空字符串的静态字段。 它实际上等同于 ""(空字符串),但使用 string.Empty 可以更加清晰地表示我们需要一个空字符串。 2. ""(空字符串) 双 阅读全文
posted @ 2024-03-03 23:05 甜饼怪2030 阅读(778) 评论(0) 推荐(0) 编辑
摘要:C# 中的 String 和 StringBuilder 的区别 1. String 类 String 类表示不可变的字符串。 一旦创建 String 对象,其内容就不能再被修改。 对 String 对象进行任何修改操作都会返回一个新的 String 对象。 示例: string str1 = "H 阅读全文
posted @ 2024-03-03 23:04 甜饼怪2030 阅读(80) 评论(0) 推荐(0) 编辑
摘要:C# 中 dynamic 动态类型与 object 类型的区别 1. object 类型 object 类型是 .NET 中 System.Object 类的别名。 在 C# 中,所有类型(预定义、用户定义、引用类型、值类型)都直接或间接继承自 Object。 因此,我们可以将任何类型的值用 obj 阅读全文
posted @ 2024-03-03 23:04 甜饼怪2030 阅读(143) 评论(0) 推荐(0) 编辑
摘要:C# 中判断变量类型的两种方法 1. GetType() 方法 GetType() 方法用于获取当前实例的准确运行时类型。 该方法返回一个 Type 对象,该对象包含有关该类型的信息,例如类型名称、成员、属性等。 示例: public class Person { public string Nam 阅读全文
posted @ 2024-03-03 23:04 甜饼怪2030 阅读(495) 评论(0) 推荐(0) 编辑
摘要:C# 中的装箱和拆箱 1. 什么是装箱和拆箱? 装箱:将值类型转换为引用类型的过程。 拆箱:将引用类型转换为值类型的过程。 2. 装箱和拆箱的作用 C# 中值类型和引用类型的最终基类都是 Object 类型(它本身是一个引用类型)。 通过装箱和拆箱,可以将值类型当做引用类型来处理,从而将值类型与引用 阅读全文
posted @ 2024-03-03 23:04 甜饼怪2030 阅读(72) 评论(0) 推荐(0) 编辑
摘要:as和is的区别 is 只是做类型兼容判断,并不执行真正的类型转换。返回true或false,不会返回null,对象为null也会返回false。 as运算符将表达式结果显式转换为给定的引用类型或可以为null值的类型。 如果无法进行转换,则as运算符返回 null。 总结:as模式的效率要比is模 阅读全文
posted @ 2024-03-03 23:04 甜饼怪2030 阅读(59) 评论(0) 推荐(0) 编辑
摘要:C# 中的out关键字有什么作用? 参数在使用 out 关键字进行引用传递时,不需要在方法调用之前进行初始化。 out 关键字通常用于表示方法返回多个值的情况,或者用于修改方法外部的变量。 out 参数必须在方法内部进行初始化,并确保在方法结束前完成赋值操作。方法内部没有为 out 参数赋值的情况下 阅读全文
posted @ 2024-03-03 23:04 甜饼怪2030 阅读(193) 评论(0) 推荐(0) 编辑
摘要:C# 中的 ref 关键字有什么作用? 参数在使用 ref 关键字进行引用传递时,必须在方法调用之前对其进行初始化。 ref 关键字既可以在进入方法之前初始化参数的值,也可以在方法内部对参数进行修改。 ref 参数在进入方法时保持原始值,并在方法结束后将值带回到调用处。 ref 关键字的作用: C# 阅读全文
posted @ 2024-03-03 23:04 甜饼怪2030 阅读(82) 评论(0) 推荐(0) 编辑
摘要:静态类与非静态类的区别? 静态类无法实例化(换句话说,无法使用new运算符创建类类型的变量。 由于不存在任何实例变量,因此可以使用类名本身访问静态类的成员)。 静态构造函数只调用一次,在程序所驻留的应用程序域的生存期内,静态类会保留在内存中(即使用Static修饰的类,应用一旦启用静态类就会保留在内 阅读全文
posted @ 2024-03-03 23:04 甜饼怪2030 阅读(387) 评论(0) 推荐(0) 编辑
摘要:virtual作用? virtual关键字用于修改方法、属性、索引器或事件声明,并使它们可以在派生类中被重写(使用override关键字对虚方法重写)。 如下是虚方法声明和重写虚方法的示例: 声明虚方法 public class Animal { public virtual void Speak( 阅读全文
posted @ 2024-03-03 23:04 甜饼怪2030 阅读(64) 评论(0) 推荐(0) 编辑
摘要:readonly与const区别? readonly关键字(运行时常量):字段可以在声明或构造函数中初始化,常作为运行时常量使用。 const关键字(编译时常量):字段只能在该字段的声明时初始化,常作为编译时常量使用过。 C# 中的 readonly 和 const 都是用于声明常量的关键字,但它们 阅读全文
posted @ 2024-03-03 23:04 甜饼怪2030 阅读(47) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示