![](https://img-blog.csdnimg.cn/direct/7f25aae2b9f04e7ca4aaa221623018a6.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C#基础与进阶
文章平均质量分 61
从C#基础到进阶基本囊括所有知识,通过文字介绍配合大大小小的示例来深入解析C#编程技术
一介学徒
路漫漫其修远兮
展开
-
C#基础与进阶扩展合集-进阶篇(持续更新)
(名称空间System.Buffers)使用数组池,可减少垃圾收集器的工作,ArrayPool管理一个数组池,数组可以从这租借,并返回池中,内存在ArrayPool中管理。可理解成转换器,适配器适配的是不同类间相同的名称,不论字段或属性(必须为值类型或字符串类型),只要名字相同,都适配给目的对象;:变量直接保存其数据,作为类的字段(成员变量)时,跟随其所属的实例存储,也就是存储在堆中;,不会复制数组元素,是从span中直接访问的,切片的两种方式①构造函数传递数组的开头与结尾;原创 2023-12-01 14:01:07 · 1518 阅读 · 0 评论 -
C#-特性Attribute的定义、使用及常用特性(不定时更新)
一般用于结构体,告诉运行时自动选择最合适的结构体布局方式,以在不同平台上获得最佳性能和互操作性,并使代码更具灵活性。一般用于方法,指示编译器在调用方法时进行积极的内联优化(调用方法的地方替换为目标方法的代码),以提高程序的性能。一般用于方法,指示编译器在生成堆栈跟踪信息时隐藏标记了该属性的方法,以提高代码的安全性和可读性。自己定义一个类方法用于查找。原创 2024-03-28 10:03:50 · 1244 阅读 · 0 评论 -
C#基础与进阶扩展合集-基础篇(持续更新)
sealed,有封装的意思,一般用于修饰类或方法1、修饰类时,该类不可被继承;2、修饰方法时,一般用于virtual与抽象方法的继承类,sealed一般与override同时存在,被修饰的已重写的方法不可被其派生类重写。原创 2023-12-11 10:32:02 · 2412 阅读 · 1 评论 -
C#-单元测试NUnit框架的安装及使用
通过VS菜单栏中的NuGet包管理器搜索并安装1、若需要使用NUnit框架自带的runner运行,则在NuGet包管理器中搜索NUnit.Console安装,安装后,在packages\NUnit.ConsoleRunner.3.X.X\tools中找到unit3-console并运行;2、若想集成到VS上的测试平台,使用Microsoft的runner运行,则在NuGet包管理器中搜索NUnit3TestAdapter安装;原创 2023-08-04 17:57:48 · 1384 阅读 · 1 评论 -
C#-快速剖析文件和流,并使用(持续更新)
读写文件和目录时可使用简单的API,也可使用先进的API提供更多的功能;使用,可以压缩数据,并且利用内存映射的文件和管道在不同的任务间共享数据;原创 2024-04-29 10:08:36 · 2793 阅读 · 0 评论 -
C#-并行编程的概念及其运用
并行编程实际就是同一时间处理不同任务,可分为数据并行性(在不同任务间同时处理相同数据)和任务并行性(同时执行不同的功能),通常使用多线程来实现,可设置线程优先级;.NET提供了线程的一个抽象机制Task任务,任务允许建立任务间的关系;注意:同一时刻访问相同数据,容易出现同步问题,要避免同步问题,最好不要在线程之间共享数据,若需要共享数据,需使用同步技术,确保一次只有一个线程访问和改变共享状态,若不注意同步问题,容易出现争用条件和死锁;C#基础与进阶扩展合集-进阶篇。原创 2023-12-05 16:47:43 · 755 阅读 · 1 评论 -
C#-序列化与反序列化(xml、json)
方法将指定类序列化到一个指定路径下的xml文件。对象,通过实例对象的。原创 2023-08-09 13:39:00 · 788 阅读 · 1 评论 -
C#-关于指针使用(不安全代码)
C#中要使用指针,1、配置:Vsual Studio双击解决方案打开项目属性,进入Build生成标签页,勾选允许不安全代码;2、环境:必须在修饰符标记的不安全代码块中;原创 2023-08-27 17:11:29 · 143 阅读 · 0 评论 -
C#-注册表的读取、创建、修改、删除操作
DeleteSubKeyTree()//彻底删除子键目录,包括所有子级。注册表,包含Windows安装以及已安装软件和设备的所有配置信息;DeleteSubKey()//用于删除不包含任何子键的子键。DeleteValue()//主要用于删除指定的键值。修改操作直接通过SetValue()实现;原创 2023-08-28 17:23:09 · 3555 阅读 · 0 评论 -
C#-依赖注入DI
JsonConvert.DeserializeObject() //反序列化。JsonConvert.SerializeObject() //序列化。原创 2023-10-09 17:20:20 · 545 阅读 · 0 评论 -
C#-关于哈希表(Hashtable)
哈希表的键不能为空,值可为空。原创 2023-08-28 16:25:54 · 120 阅读 · 0 评论 -
C#-关于迭代器和分部类
1、迭代器是可以返回相同类型的值的有序序列的一段代码,可用作方法、运算符或get访问器的代码体;2、迭代器代码使用语句依次返回每个元素;使用语句终止迭代;3、迭代器的返回类型必须为或。原创 2023-08-28 11:24:11 · 53 阅读 · 0 评论 -
C#-方法的功能、参数、返回值描述
描述描述原创 2023-08-04 09:14:32 · 79 阅读 · 1 评论 -
C#-扩展方法的定义及其使用
使用扩展方法时应using扩展方法所在的命名空间;第一个参数为可调用扩展方法的指定类型,必须加。声明扩展方法的类应该为非泛型静态类;声明方法本身应该为静态方法;1.实现一个扩展方法。原创 2023-08-04 09:36:45 · 148 阅读 · 1 评论 -
C#-关于异步async、await
await:(async wait)异步等待的意思,(该关键字一般与async方法同用)加了该关键字,主线程卡住,等待await接收到返回值时再继续执行。async:异步的意思,修饰方法时,该方法为异步方法。原创 2023-08-04 15:34:13 · 105 阅读 · 1 评论 -
C#-CancellationTokenSource 控制Task结束
1、实例化一个CancellationTokenSource对象cts;2、Task任务绑定cts的Token值;3、通过判断cts.IsCancellationRequested这个bool类型属性值来控制任务的结束;原创 2023-08-04 13:58:28 · 622 阅读 · 1 评论 -
C#-yield return实现数据迭代
返回不会为空,若返回对象数据为空,会自动生成一个枚举值为0的对象,再返回,后都会回到主程序完成任务后,再回来继续执行后面的代码(按需获取数据)C#中一般用于返回一个IEnumerable对象的结果,返回到测试方法进行测试,测试完成后,再返回继续执行。:获取需要的三个字符串对象数据后,通过。不会像return一样立即返回,每次。返回的是一个数据的迭代,其底层本质为迭代器,原创 2023-08-06 20:26:12 · 193 阅读 · 0 评论 -
C#-关于自定义集合与索引器
方法用来返回循环访问集合的枚举器,主要是迭代集合时使用;设置初始位置,位置位于集合第一个元素之前。:获取集合中当前位置的元素,:迭代集合中的下一个元素,接口实现自定义集合;原创 2023-08-24 09:57:28 · 159 阅读 · 0 评论 -
C#-关于LINQ及其常用语句
添加图标:LargeImageList、SmallImageList、StateImageList。控件TileSize属性设置平铺的宽高//启用平铺视图:控件Veiw属性设置为Tile//启用平铺。(用于显示带图标的选项列表):设置控件中显示方式。原创 2023-07-11 14:32:30 · 488 阅读 · 0 评论