- 博客(59)
- 收藏
- 关注

原创 WPF-基础及进阶扩展合集(持续更新)
/格式化字符串类型。Console.WriteLine("格式str:{0}",str.Format);//获取格式化字符串的原始字符串。
2024-04-15 14:21:12
5091
1

原创 C#基础与进阶扩展合集-基础篇(持续更新)
sealed,有封装的意思,一般用于修饰类或方法1、修饰类时,该类不可被继承;2、修饰方法时,一般用于virtual与抽象方法的继承类,sealed一般与override同时存在,被修饰的已重写的方法不可被其派生类重写。
2023-12-11 10:32:02
3716
1

原创 C#-串口通信(入门级教程,带配套工具)
CMO口(Communication Module Outlet)是一种用于连接计算机和外部设备的接口,也称为串行端口,简称CMO口,常见串口通讯有一般电脑应用的RS-232(使用 25 针或 9 针连接器)和工业电脑应用的半双工RS-485与全双工RS-422。电脑端口查看:设置->系统->关于->设备管理器->端口。
2023-11-28 11:23:43
15339
原创 C#进阶-快速了解IOC控制反转及相关框架的使用
IOC,即控制反转(Inversion of Control),它通过将对象的创建和管理责任从应用程序代码中转移到外部容器或框架中,实现了对象之间的松耦合和依赖性反转。
2024-11-12 09:39:59
4225
原创 C#-常见异常的处理方式(持续更新)
加载外部Dll时,DotNET安全机制阻止加载一个本地网或互联网上的程序集。加载程序集,不会进行安全检查;
2024-11-04 09:31:33
2556
原创 C#高级进阶---关于插件开发(初版)
首先,你需要定义一个插件接口。这个接口指定了所有插件需要实现的方法。服务实现示例C#进阶-了解IOC控制反转及相关框架的使用/// 提供给插件加载配置或初始化代码/// 提供给插件执行耗时操作,或者执行流程,该方法将被异步执行void Run();/// 提供给插件释放资源/// 提供给插件往平台注册服务。
2024-10-21 13:32:09
4160
2
原创 C#-使用Serilog框架快速实现日志及其相关扩展
集合改变触发事件,更改附加属性AutoScroll值,值更改触发CallBack将日志滚动到底部;将该接口实现类实例化对象通过WriteTo.Sink(myEventSink)与Logger绑定。继承ILogEventSink接口实现 Emit:当Sink器接收到新日志时触发。:添加监听对象Trace.Listeners.Add(this);Console接收器(安装。两事件的响应原因:查看日志时,防止日志自动滚动到底部;File接收器(安装。通过该接口将接收器接收的日志添加进内部日志集合。
2024-10-10 17:28:54
4349
1
原创 C#进阶-了解ORM框架SqlSugar并巧妙使用(附相关数据库工具)
通过NuGet包管理器搜索SqlSugar、MySql.Data、Newtonsoft.Json三个包并安装。
2024-08-05 17:34:36
5599
原创 Windows下终端Kafka指令常用操作
1、创建Topickafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test2、查看Topic列表kafka-topics.bat --list --bootstrap-server localhost:9092
2024-07-10 20:25:35
547
1
原创 C#-快速剖析文件和流,并使用(持续更新)
读写文件和目录时可使用简单的API,也可使用先进的API提供更多的功能;使用,可以压缩数据,并且利用内存映射的文件和管道在不同的任务间共享数据;
2024-04-29 10:08:36
3197
原创 WPF-关于动画Animation(及其常见问题)
StrokeDashOffset:分段偏移值(改变该值实现流动效果)="0.5,0.5",切换位置转换的中心点;StrokeDashArray :分段长度。得自己规划逻辑(触发器、事件都可)
2024-04-22 13:21:41
3819
原创 C#-关于COM组件、非托管代码、ConcurrentDictionary、MemoryMarsha 类
COM 提供了一种标准的方式来创建、使用和管理软件组件,使得不同的软件模块可以在不同的编程语言中开发,并能够相互协作。COM 的概念和设计思想也对后续的技术发展产生了深远的影响。这使得开发人员可以根据自己的喜好和技能选择合适的编程语言来开发组件。接口定义了组件可以提供的方法和属性,而客户端程序必须遵循接口规定的方式来与组件进行交互。:COM 提供了封装机制,允许组件隐藏内部实现细节,只暴露必要的接口给外部程序使用。:COM 把软件功能划分为独立的组件,每个组件可以被单独开发、部署和维护。
2024-03-29 10:04:35
533
原创 C#-特性Attribute的定义、使用及常用特性(不定时更新)
一般用于结构体,告诉运行时自动选择最合适的结构体布局方式,以在不同平台上获得最佳性能和互操作性,并使代码更具灵活性。一般用于方法,指示编译器在调用方法时进行积极的内联优化(调用方法的地方替换为目标方法的代码),以提高程序的性能。一般用于方法,指示编译器在生成堆栈跟踪信息时隐藏标记了该属性的方法,以提高代码的安全性和可读性。自己定义一个类方法用于查找。
2024-03-28 10:03:50
1409
原创 C#-并行编程的概念及其运用
并行编程实际就是同一时间处理不同任务,可分为数据并行性(在不同任务间同时处理相同数据)和任务并行性(同时执行不同的功能),通常使用多线程来实现,可设置线程优先级;.NET提供了线程的一个抽象机制Task任务,任务允许建立任务间的关系;注意:同一时刻访问相同数据,容易出现同步问题,要避免同步问题,最好不要在线程之间共享数据,若需要共享数据,需使用同步技术,确保一次只有一个线程访问和改变共享状态,若不注意同步问题,容易出现争用条件和死锁;C#基础与进阶扩展合集-进阶篇。
2023-12-05 16:47:43
1004
1
原创 C#基础与进阶扩展合集-进阶篇(持续更新)
(名称空间System.Buffers)使用数组池,可减少垃圾收集器的工作,ArrayPool管理一个数组池,数组可以从这租借,并返回池中,内存在ArrayPool中管理。可理解成转换器,适配器适配的是不同类间相同的名称,不论字段或属性(必须为值类型或字符串类型),只要名字相同,都适配给目的对象;:变量直接保存其数据,作为类的字段(成员变量)时,跟随其所属的实例存储,也就是存储在堆中;,不会复制数组元素,是从span中直接访问的,切片的两种方式①构造函数传递数组的开头与结尾;
2023-12-01 14:01:07
2449
原创 SECS/GEN HSMS半导体通信协议解析
功能大类Stream功能细分Function表示类型,编码类型(SECS-II编码类型取值为0)会话类型(不同取值对应不同消息类型,0对应数据消息,1对应Select.req,2对应Select.rsp):一次消息交互的唯一标识。
2023-11-02 15:54:01
1942
原创 C#-依赖注入DI
JsonConvert.DeserializeObject() //反序列化。JsonConvert.SerializeObject() //序列化。
2023-10-09 17:20:20
759
原创 WPF动态呈现、控制Gif,及图片轮播,3D圆,Path,多方式填充等扩展知识
/获取控制对象//控制播放//暂停//到指定帧control.CurrentFrameChanged//帧改变触发事件//指定gif源//控制速率gif:ImageBehavior.AutoStart="False"//是否自动播放gif:ImageBehavior.RepeatBehavior=“3x"//重复播放次数gif:ImageBehavior.AnimationLoaded//动画加载时触发事件。
2023-09-25 17:47:53
780
原创 C#、WPF-批量生成QR二维码,TCP传输并打印日志
1、批量生成二维码;2、实时打印日志;3、实时监测生成进度;4、可暂停、继续生成;5、生成的二维码图片保存在本地,并把扫码数据打印在文本文件中;6、日志与生成的二维码在客户端实时显示;QR建议:使用ZXing斑马库,GitHub上开源;
2023-09-24 20:27:49
575
原创 WPF-关于命令(Command)及自定义命令
一处声明,处处使用命令四要素:1、命令:Command,实现了ICommand接口的类;2、命令源:CommandSource,命令发送者;3、命令目标:CommandTarget,命令作用对象;4、命令关联:CommandBinding,将外围逻辑与命令关联;
2023-09-12 11:00:47
1724
原创 WPF-关于自定义路由事件与附加事件
主要步骤:(与依赖属性相似)1、声明并注册路由事件;2、为路由事件添加CLR事件包装器;3、创建可以激发路由事件的方法;1、使用EventManager.RegisterRoutedEvent注册路由事件参数一:路由器名称,与CLR事件包装器名称一致;参数二:路由事件策略:Bubble冒泡式:UI树自底端(事件激发)向顶端传递Tunnel隧道式:树根向事件激发控件传递,与冒泡相反Direct直达式:模仿CLR直接事件参数三:指定事件处理器的类型,标签与此参数委托一致;
2023-09-11 11:13:46
1177
原创 C#练习-实现一个下载器
DownloadFile()方法:加载URL数据到指定文件;OpenRead()方法:为对应URL资源打开一个可读流;需求:在文本框输入URL,将URL资源下载到本地。:以文件流的方式打开一个文件,并操作文件;:向对应URL获取一个数据拉取请求。
2023-09-06 14:24:53
351
原创 WPF-常见集合控件(ItemsControl、ListView、DataGrid、TreeView、TabControl.......)
属于ItemsControl族主要用到两个依赖属性:ItemSource:指定数据来源ItemTemplete:在资源中指定一个数据显示模板更多属性:DisplayMemberPath、SelectedValuePath。。。
2023-09-03 16:04:15
4196
原创 C#-注册表的读取、创建、修改、删除操作
DeleteSubKeyTree()//彻底删除子键目录,包括所有子级。注册表,包含Windows安装以及已安装软件和设备的所有配置信息;DeleteSubKey()//用于删除不包含任何子键的子键。DeleteValue()//主要用于删除指定的键值。修改操作直接通过SetValue()实现;
2023-08-28 17:23:09
5042
原创 C#-关于迭代器和分部类
1、迭代器是可以返回相同类型的值的有序序列的一段代码,可用作方法、运算符或get访问器的代码体;2、迭代器代码使用语句依次返回每个元素;使用语句终止迭代;3、迭代器的返回类型必须为或。
2023-08-28 11:24:11
132
原创 C#-关于指针使用(不安全代码)
C#中要使用指针,1、配置:Vsual Studio双击解决方案打开项目属性,进入Build生成标签页,勾选允许不安全代码;2、环境:必须在修饰符标记的不安全代码块中;
2023-08-27 17:11:29
267
原创 C#WPF实现TCP服务器客户端的通信
1、三个重要对象:Tcp监听、客户端、数据网络流2、设置监听,捕获客户端的连接;3、客户端连入,开线程通过网络流接收数据;//设置线程为后台线程。
2023-08-26 17:29:22
2663
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人