A_nanda
夜临门 路难行 手提孤灯 晓烛之明 且行且珍惜
展开
-
c#如何直接获取json中的某个值
""hobbies"": [""读书"", ""编程""]""hobbies"": [""读书"", ""编程""]""street"": ""中关村""""street"": ""中关村""""city"": ""北京"",""city"": ""北京"",原创 2025-03-11 17:06:47 · 240 阅读 · 0 评论 -
c#中使用时间戳转换器
在C#中,时间戳转换器通常用于将时间戳(通常是一个表示自某一特定时间点(如1970年1月1日UTC)以来的毫秒数的长整型值)转换为DateTime对象,或者将DateTime对象转换回时间戳。原创 2025-03-10 11:40:40 · 232 阅读 · 0 评论 -
二叉搜索树算法实现原理
二叉搜索树的各项操作的时间复杂度都是对数阶,具有稳定且高效的性能。只有在高频添加、低频查找删除数据的场景下,数组比二叉搜索树的效率更高。二叉搜索树(Binary Search Tree,简称BST)是一种节点有序排列的二叉树数据结构。对于每个节点,其左子树的所有节点值都小于该节点值,其右子树的所有节点值都大于该节点值。用作系统中的多级索引,实现高效的查找、插入、删除操作。删除节点:从树中删除特定值的节点,并维护树的结构。定义节点类:包含节点值、左子节点和右子节点。搜索节点:根据节点值在树中查找特定值。原创 2025-01-15 14:39:00 · 46 阅读 · 0 评论 -
算法:二分查找
二分查找算法是一种在中查找特定元素的搜索算法。原创 2025-01-07 18:02:59 · 326 阅读 · 0 评论 -
c#序列化和反序列化(一)
序列化是获取内存中的对象或对象图 (一组相互引用的对象) 并将其扁平化为可以存储或传输的字节、XML、JSON或类似表示的流的行为。【方式二】:创建模型类,实现序列化存储成XML文件;反序列化是直接读取XML文件;【方式三】:创建模型类,实现序列化存储成XML文件;反序列化是直接读取XML文件;//反序列化读取数据。【方式四】:创建模型类,实现序列化存储成XML文件;反序列化是直接读取XML文件;【方式一】:创建模型类,实现序列化存储成XML文件;反序列化是直接读取XML文件;原创 2025-02-08 13:47:17 · 173 阅读 · 0 评论 -
使用 C# Attribute 实现 AOP 功能
首先,定义一个继承自Attribute的类,用于标记需要应用AOP功能的方法。这个Attribute可以被应用于任何方法上,用于指示该方法需要记录执行时间。创建一个需要应用AOP的业务类,并在需要记录执行时间的方法上标记[Timing]Console.WriteLine("正在执行业务逻辑...");// 模拟耗时操作Console.WriteLine("没有 TimingAttribute 的方法");在这个业务类中,DoWork方法被标记为需要记录执行时间。原创 2025-01-16 14:18:16 · 347 阅读 · 0 评论 -
算法:线性查找
线性查找算法简单易懂,适用于小规模数据集或无序数据集。其主要优点是实现简单,不需要对数据进行排序。然而,由于其时间复杂度为O(n),对于大规模数据集,效率较低。对于大规模数据集或需要频繁查找的场景,可以考虑使用更高效的查找算法,如二分查找(适用于有序数据集)或哈希查找。原创 2025-01-07 10:15:58 · 134 阅读 · 0 评论 -
C#编程中dynamic类型
dynamicdynamic类型为C#提供了一种灵活的方式来处理类型不确定的对象,特别是在与动态语言交互、处理动态数据结构时非常有用。然而,使用dynamic类型时也需要注意其可能带来的性能开销和类型安全问题。合理使用dynamic类型,可以在保持代码灵活性的同时,避免潜在的运行时错误。原创 2025-01-06 16:17:58 · 216 阅读 · 0 评论 -
c#中集中常见的集合去重方式
// 使用自定义的比较器和循环遍历if (!/// 自定义的比较器。原创 2025-01-03 08:53:18 · 240 阅读 · 0 评论 -
接口和抽象类的对比
接口中的所有成员默认都是公共的,并且是抽象的。可以包含抽象方法(没有实现的方法),也可以包含具体实现的方法(有实现的方法)。总的来说,抽象类更适合用于提供部分实现和共享状态,而接口更适合用于定义类之间的合同,即明确定义类应该具备哪些行为。当一个类继承抽象类时,它必须实现抽象类中所有的抽象成员,除非该类也被声明为抽象类。当一个类实现接口时,它必须实现接口中所有的成员,否则该类也必须被声明为抽象类。一个类只能直接继承一个抽象类,但可以同时实现多个接口。抽象类可以包含字段和具体实现,因此可以包含状态。原创 2024-12-31 14:26:12 · 58 阅读 · 0 评论 -
c#中using语句
using语句是 C# 中一个非常有用的语法结构,它简化了资源管理,确保资源在使用后能够被自动释放。通过合理使用using语句,可以提高代码的可读性和可靠性,避免资源泄露和内存泄漏等问题。掌握using语句的用法和原理,将有助于开发者编写更高效、更安全的代码。原创 2024-12-26 15:26:47 · 297 阅读 · 0 评论 -
串口通讯Serial Communication
串口通信(Serial Communication)是通过串行接口在设备间传输数据的方式。数据在串口通信中以位为单位,通过单一通道逐位顺序传输。这种方式相较于并行通信虽然速度较慢,但它所需的连接线路少,更适合于长距离通信和简化设备接口。C# 提供了强大的串口通信支持,通过SerialPort类和库,开发者可以方便地实现串口设备的控制和数据交互。在实际应用中,需要根据具体的需求和场景,合理配置串口参数、处理数据通信和错误,并注意多线程通信的线程安全。原创 2024-12-24 12:01:31 · 485 阅读 · 0 评论 -
c#实现PDF文件的合并
通过本文的介绍,你已经学会了如何使用C#和Spire.PDF库来批量合并PDF文档。这个示例代码可以作为一个基础,你可以根据自己的需求进行扩展和优化。希望这篇技术文章能帮助你在实际项目中更高效地处理PDF文件。提示Spire.PDF虽然能快速实现pdf文件的加载和合并功能,但是是付费插件,因此在使用的时候需要考虑经济状况。原创 2024-10-24 10:50:12 · 712 阅读 · 1 评论 -
C# 异步编程与多线程简析
C# 中的ThreadThreadPool和Task各有优缺点,适用于不同的场景。在实际开发中,应根据具体需求和场景选择合适的机制。掌握这三种机制的使用,能够帮助我们更好地实现异步编程和多线程,提高应用程序的性能和响应性。原创 2024-12-24 10:32:14 · 283 阅读 · 0 评论 -
c# object和dynamic的区别
object是 C# 中所有类型的基类。每个类型,无论是值类型还是引用类型,都直接或间接继承自object。使用object类型可以存储任何类型的数据,但由于它是非特定的,所以在使用时通常需要进行类型转换。dynamic关键字用于在编译时绕过强类型检查。dynamic类型的变量在运行时解析类型,这使得你可以在运行时动态地调用成员。dynamic类似于object,但区别在于dynamic类型的成员访问是通过动态绑定实现的。object和dynamic在 C# 中各有其独特的使用场景和优势。object。原创 2024-09-29 10:34:53 · 477 阅读 · 0 评论 -
字符串判空的几种方式
方法三 :但是IsNullOrEmpty在字符串为" ","\n","\t",时候就无能为力了,为了覆盖这些场景,高手们一般判空使用方法IsNullOrWhiteSpace。这样针对str = ""也是可以的,但是大多数场景是在方法的 入口处判空,这个字符串有可能是null,也有可能是" ",甚至是"\n",上面这种判空方法显示不能覆盖这么多场景;运行结果:a is empty。原创 2024-09-14 08:48:28 · 818 阅读 · 0 评论 -
ASP.NET Core 中的 CRUD 操作
我们的披萨服务支持对披萨列表执行 CRUD 操作。这些操作是通过 HTTP 谓词执行的,它们通过 ASP.NET Core 属性进行映射。正如你所了解的,HTTPGET谓词用于从服务检索一个或多个项。此类操作使用[HttpGet]属性进行批注。GET你已经了解了GET操作的工作原理。让我们来详细了解一下POSTPUT和DELETE操作。原创 2024-09-14 17:34:00 · 523 阅读 · 0 评论