自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 WPF Prism框架

Prism Mvvm重点关注:BindableBase,RaisePropertyChanged()|OnPropertyChanged()|SetProperty(),DelegateCommand|DelegateCommand<T>等。INotifyPropertyChanged,ICommand===>MvvmLight====>CommunityToolkit. Mvvm(现在的名字)====>Prism(三棱镜) 最流行,功能最全的MVVM。在Prism框架通过区域管理来实现导航相关功能。

2026-08-12 19:15:51 241

原创 WPF中的CommunityToolkit.Mvvm框架

MVVM 工具包提供两种现用的实现:WeakReferenceMessenger 和 StrongReferenceMessenger:前者在内部使用弱引用,为收件人提供自动内存管理,而后者使用强引用,并要求开发人员在不再需要收件人时手动取消订阅收件人(有关如何注销消息处理程序的更多详细信息,可在下面找到),但这一点换来的是提供更好的性能,而且内存使用量要少得多。b. 源生器靠C#中的特性来实现。a. 必须在部分类中使用,原因:源生器会再编译,编译的时候会把开发者定义的部分类,合并到一个大的VM中。

2026-08-05 19:11:12 297

原创 WPF中的MVVM框架:MvvmLight

d. 在Ioc容器中注册服务 SimpleIoc.Default.Register<IService<User,ViewUser>,UserService>();直接拿,调用IOC的GetInstance(),如:ServiceLocator.Current.GetInstance<LoginWindow>()}) // 没有构造函数注入常用。● RelayCommand 和 RelayCommand<T>类:框架中常用的命令类,用于在 ViewModel 中实现命令。

2026-08-04 19:11:33 224

原创 WPF重难点:样式触发器,模板,Binding,依赖属性,依赖事件,访问数据库等

Default : 既可以是双向,也可以是单项, 除非明确表明某种模式, 否则采用该默认绑定,如何使用Default模式会根据控件的功能来确定Default是相当于TwoWay还是OneWay。一般来说控件即可以输入数据,也可以显示数据,Default相当于TwoWay,如果控件只能显示数据,Default相当于OneWay。主要内容:WPF重难点:样式触发器(昨天讲过),模板,Binding,依赖属性,依赖事件,访问数据库等。定义完转换器后,需要把转换器定义成全局或局部资源,以便在XAML文档中使用。

2026-07-30 19:05:52 242

原创 WPF基础

Button--->ButtonBase ---> ContentControl ---> Control ---> FrameworkElement ---> UIElement ---> Visual ---> DependencyObject 依赖对象。UserControl ---> ContentControl ---> Control ---> FrameworkElement ---> UIElement ---> Visual ---> DependencyObject 依赖对象。

2026-07-27 19:34:18 184

原创 C#开发之MQTT协议

MQTT(消息队列遥测传输)工作在【 TCP/IP协议簇】上,是为【硬件性能低下的远程设备】以及【网络状况糟糕的情况下】而设计的【发布/订阅型消息协议】,为此,它需要一个消息中间件(MiddleWare)。在MQTT协议中,一个MQTT数据包由:固定头(Fixed header)、可变头(Variable header)、消息体 (payload)三部分构成。Topic(主题):可以理解为消息队列中的路由(Key,通道),订阅者订阅了主题之后,就可以收到发送到该主题的消息。一个主题下,有标题,消息内容。

2026-07-21 16:25:53 794

原创 C#通讯之网络通讯

客户端接收数据时的超时时间:ReceiveTimeout 超时值(以毫秒为单位)。默认值为 0,指示超时期限无限大。网络协议重要理论:(TCP建立连接时三次握手,TCP释放连接时的四次挥手,TCP与UDP基本区别等)客户端使用哪种协议类型和服务器通讯的:client.ProtocolType。网络协议理论:(七层网络框架,TCP协议,UDP协议,工业行业协议等)Socket通讯,TCP通讯,UDP通讯流程描述,根据流程图要能口述?Socket通讯,TCP通讯,UDP通讯概念、特点,应用场景?

2026-07-06 19:15:27 287

原创 c#串口编程之常用第三方模块Modbus,NModbus,NModbus4

NModbus相较于NModbus4在功能和性能上进行了改进和优化。主要内容:串口编程之常用第三方模块Modbus,NModbus,NModbus4,FluentModbus,touchsocket。NModbus4 github:(推荐,简单易用,网上资源多,但不再更新,将来可能会被NModbus替换掉)HslCommunication:(国产比较活跃,支持的通讯较多,商用收费)NModbus:(强烈推荐,不断更新,资源少,github不好打开)NModbus4和NModbus模块下载、安装、使用。

2026-07-03 16:36:32 203

原创 主要内容:C#通讯之串口编程

波特率:传输的速度,单位:每秒比特数(bps),常用的波特率:传输波特率600bps,1200bps,2400bps,4800bps,【9600bps】,19200bps,38400bps。比特:指发送的消息的单位,bit,位,按位传递数据。通讯:一般发生在两端或多端,是两端之间的通讯,一端负责发送信息(发送端,客户端,从站),另外一端负责接收信息(接收端,服务器端,主站)。通讯的双方要遵循约定好的数据格式【专业叫法:数据报文,即通讯协议中的数据帧】,双方才能通讯,这些约定的规则,称为通讯协议。

2026-07-01 19:27:26 240

原创 c#图表控件及图表库

LiveCharts2 现在几乎可以运行在任何平台,支持Maui,Uno Platform、Avalonia、Etoforms、Xamarin、Blazor-wasm、WPF、Winforms、WinUI、UWP等。LiveCharts2 是LiveCharts(0)的升级,它修复了前身的主要设计问题,专注于在任何地方运行,在不丢失V0中已有的特性情况下提高了灵活性。ChartAreas属性:绘图区,可以有多个,每个区域可以绘制不同的图形,如:柱状图(Column, Bar),饼状图,线性图等 ****

2026-06-29 21:40:05 250

原创 c# 控件库:HZHControls、SunnyUI、DevExpress等

DevExpress是收费的控件库,主要应用在大型的管理系统,如:MES系统,ERP系统,CRM等。安装及破解较麻烦,电脑配置要求高。HZHControls和SunnyUI主要看工控控件,其他基本控件样式不太好。用来加强学习GDI+和自定义控件。其他控件库 AntdUI:https://gitee.com/antdui/AntdUI。一般的控件库或第三方模块包都需要先安装,再根据官方文档去使用。研究开源控件库源码,进一步加强GDI+和自定义控件技能。通过网盘分享的文件:DevExpress。

2026-06-25 09:52:20 242

原创 c# GDI+

GDI:图形设备接口,英文全称:Graphics Device Interface。编写图形程序时需要使用GDI。从程序设计的角度看,GDI包括两个部分:GDI对象和GDI函数。【GDI是使用硬件加速图形渲染的引擎】。GDI+:微软在Windows 2000以后操作系统中提供的新的图形设备接口。【GDI+不是使用硬件加速的】,而且GDI+2.0比GDI+更快。

2026-06-23 20:13:35 191

原创 c#自定义控件

分类:完全自定义控件、扩展控件、复合控件完全自定义控件:继承Control类扩展控件:继承某个具体的控件类,如:Button,Label等复合控件:继承UserControl类,又称用户控件或组合控件。即:把多个控件通过组合的形式,形成更大,功能更全的控件。******

2026-06-22 17:53:53 400

原创 c#git源代码管理工具

git是目前最流行的【源代码管理工具】。git是【开源的】,【免费的】,【分布式版本控制系统】。集中式 SVN,CVS。

2026-06-22 17:44:13 300

原创 c# 锁

在C#中,并发访问指的是多个线程同时访问共享资源的情况。这种场景下,如果不进行适当的同步处理,很容易出现数据竞争、死锁等问题,导致程序出现不可预测的行为或崩溃。当多个线程需要读取共享资源,但只允许一个线程写入时,可以使用。对于简单的原子操作(如增加计数器等),可以使用。当需要限制同时访问资源的线程数量时,可以使用。等,这些类内部已经实现了线程安全的操作。例如,限制同时访问某个资源的线程数为N。这些操作是线程安全的,无需使用锁。对于一些简单的并发集合操作,可以使用。等,允许更细粒度的控制。

2026-06-17 19:48:37 173

原创 c#多线程

线程池、Task任务Task任务:异步编程模型变迁:斐波那契数列。

2026-06-16 20:19:17 163

原创 c# 了解其他ORM框架 SqlSugar, Dapper

Dapper是国外的,开源的,简易的ORM框架,它是ADO.NET基础上适当简化了开发者操作数据库的逻辑,性能上有很大提升,它的使用和ADO.NET基本一致。市场上ORM框架很多,除了微软官方主流的EF框架外,第三方公司也开发了一些ORM框架,被开发者广泛使用,如:SqlSugar, Dapper。学习其他ORM框架时,主要学习技术文档的查找,阅读,理解,根据所学ADO.NET,EF等类比学习。SqlSugar是国产的,开源的,易用的ORM框架,让开发者使用它可以方便的和各种数据库交互。

2026-06-15 19:27:38 215

原创 实体框架Entity Framework LINQ查询技术(重要),EF重要API(重要)

EF框架中重要文件后缀:实体数据模型文件。模板文件,生成模型、上下文等使用的模板文件。template实体上下文,数据库上下文。相当于一个数据库实例,通过实例拿到DbSet,DbSet相当于一张表中的数据。连接字符串在数据库上下文对象的构造函数中。database set数据库集==》数据库包含很多对象的集合(很多表,很多视图,很多存储过程等), DataSet数据集(内存中的数据集,可以有很多表)模型类文件(实体类,领域模型 Domain Model)。相当于数据库中的表结构。

2026-06-08 19:34:24 187

原创 C#中使用SQLite、正则表达式

常用元字符:+ 号代表前面的字符必须至少出现一次(1 次或多次)* 号代表前面的字符可以出现一次或者多次(0 次、或 1 次、或多次)?号代表前面的字符最多只可以出现一次(0 次或 1 次)^匹配以XX开头,或取反$匹配以XX结尾[ ]匹配字符集合( )表示组{n,m}匹配n到m次| (竖线)表示"或"关系[A-Z] 表示一个区间,匹配所有大写字母;[a-z] 匹配所有小写字母;[0-9] 匹配所有数字。

2026-06-05 19:31:43 277

原创 数据库语句 触发器 作业

DDL触发器是当服务器或者数据库中发生数据定义语言(主要是以create,drop,alter开头的语句)事件时被激活使用,使用DDL触发器可以防止对数据架构进行的某些更改或记录数据中的更改或事件操作。

2026-06-04 19:44:36 212

原创 SQLHelper,N层框架(三层框架升级)与c#加密算法和INI

SqlHelper是基于.NET Framework开发的数据库操作组件,主要通过封装ADO.NET对象(如SqlConnection、SqlCommand)简化数据库访问流程。该组件通过静态方法提供统一的数据访问模式,支持传入连接字符串和SQL参数快速执行数据库交互。

2026-06-03 20:17:16 268

原创 数据库语句

主键专业定义:主键是数据库表中能唯一标识每一行数据不重复的字段或字段组合。主键不能重复,不能为空,每张表只能设置一个主键,但主键包含的列可以有多个。主键:可以保证每一行数据和其他行数据不重复。外键专业定义:外键的本质是表之间的“引用”,它建立了数据之间的逻辑链接,是关系型数据库体现“关系”的关键。在一个数据库表中,如果一个字段(或字段组合)不是本表的主键,但它引用了另一个表的主键,那么这个字段就称为外键。一个表的外键可以有多个。外键:通过一个外键,可以去其他表中找一堆数据。

2026-06-01 19:41:36 210

原创 数据库基础知识

DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。详细:https://baike.baidu.com/item/数据库管理系统/1239101。

2026-05-28 20:36:24 210

原创 认识WindowForm

控件一般是可见的,有交互的UI对象,如:按钮,文本框等 User Interface用户界面。组成继承Component,控件继承Control,Control最终继承Component。内外距Padding:控件的内容区到控件自身边框之间的距离。组件一般是不可见的,提供后台功能的对象,如:定时器等。值类型转换:小转大,如int转long 隐式转换。外边距Margin:控件到它父控件边框之间的距离。强制转换(显示转换)

2026-05-20 20:07:46 32

原创 c# Math、DataTime对象梳理

yyyy — 四位年份MM — 两位月份(01-12)dd — 两位日期(01-31)HH — 24小时制小时(00-23)mm — 分钟(00-59)ss — 秒(00-59)fff — 毫秒dddd — 星期几(中文)示例(中文格式):string cnDate = now.ToString("yyyy年M月d日 dddd HH:mm:ss", culture);// 输出:2026年5月18日 星期一 17:36:46。

2026-05-19 19:22:27 434

原创 c#特性与反射

课外阅读:https://blog.youkuaiyun.com/wangjun_huster/article/details/71747489https://www.whuanle.cn/archives/632https://blog.youkuaiyun.com/AI_eye/article/details/118727616https://www.runoob.com/csharp/csharp-attribute.htmlhttps://www.runoob.com/csharp/csharp-reflectio

2026-05-18 20:51:33 381

原创 C # 中的IO(Input/Output)概念

1.概念:I/O:Input/Output,即输入和输出C# 的 I/O 操作主要围绕 控制台输入输出(一般数据显示到控制台,注意格式化) 和 文件输入输出(即文件的读写操作)。2.I/O 重要的类对象:文件操作,目录操作,路径操作控制台输入输出:Console类文件输入输出(即流对象):BinaryReader 从二进制流读取原始数据。BinaryWriter 以二进制格式写入原始数据。BufferedStream 字节流的临时存储。

2026-05-14 22:05:05 189

原创 c#基础6

c#语言中泛型类的定义与泛型方法类似,是在泛型类的名称后面加上<T>,当然,也可以定义多个类型,即“<T1,T2,~~~>"。存放一组相同类型的值。

2026-05-08 19:24:18 69

原创 c#基础5

访问权限静态非静态 static返回值类型 代表方法 是否具有return 数据的类 void 和 其他明确的数据类型(int float.. string..)方法名称 大驼峰 见名之意方法参数 实参(调用方法) 和形参(声明方法)大括号语句块。

2026-04-21 20:05:44 266

原创 c# 基础4

while循环。

2026-04-16 19:08:24 43

原创 c#基础3

变量 用来存储数据的一种数据格式变量分为 声明变量(定义变量) 初始化变量 使用变量变量的作用域范围 (局部变量 是在方法中定义的变量)1.声明变量 命名规则 符合标识符要求 并且是小驼峰命名法 且一般不以_ 开头2.初始化变量 赋值的内容要符合变量的类型3.使用变量4.连写 .声明变量 初始化变量5.变量在同一个作用域中 不能重复定义变量6.变量定义的连写int f,g;f = 100;g = 200;

2026-04-15 20:01:10 390

原创 c#基础2

1. debug和release 1.debug调试 用来运行程序 观察程序执行过程 排查程序错误 不作为正式发布使用 可以使用断点 调试功能 2.release发布 把调试好的程序 通过relase编译 程序更加轻量 ,并做了优化 3.点击快捷键F5 或者点击绿色箭头 启动 4.断点调试 当需要对程序的执行过程进行逐步观察时(或者在排错时)使用断点调试1.当程序经过debug或者release 编译程序后得到的代码的文件,它可以是.exe(可执行文件)或.dll(动态链接库

2026-04-14 18:04:34 405

原创 c#基础

net Framework的第一个版本发布于2002年, .NET Framework 是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种语言(C#、VB、C++、Python等)的开发平台 ,适合传统桌面和Web应用开发。AssemblyInfo.cs是.NET项目中用于配置程序信息的文件.定义程序集名称、版本、公司等信息,支持图形化界面或代码直接修改。.csproj:项目文件,里面包含着这个项目的信息,可以双击运行。

2026-04-13 19:39:17 328

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除