自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一篇文章帮你搞定数据库事务

数据库事务(Database Transaction)是数据库管理系统(DBMS)中的一个核心概念,指的是一组逻辑相关的数据库操作(如插入、更新、删除)组成的一个不可分割的单元。事务的目标是确保多个操作要么全部成功执行,要么全部不执行,从而维护数据的完整性和一致性。类比场景从账户A扣除100元。向账户B增加100元。这两个操作必须同时成功或同时失败,否则会导致数据错误(比如钱扣了但没到账)。事务就是用来保证这种“要么全做,要么全不做”的机制。

2025-03-25 11:06:27 873

原创 行为型设计模式

模板方法模式在一个抽象类中定义算法的骨架,将某些步骤延迟到子类实现。核心思想是允许子类在不改变算法结构的情况下重写特定步骤。观察者模式定义了对象之间的一对多依赖关系,当一个对象(主题)状态改变时,所有依赖它的对象(观察者)会自动收到通知并更新。责任链模式将多个处理对象连成一条链,请求沿着链传递,直到有对象处理它为止。实现了请求发送者与接收者的解耦。模式核心思想典型场景模板方法固定算法骨架,子类实现细节数据处理流程、框架设计观察者状态变化时自动通知依赖对象事件驱动系统、日志系统责任链。

2025-03-25 09:48:47 425

原创 ORM——对象关系映射

ORM框架通过其强大的抽象能力,显著提升了数据库操作的效率和安全性。尽管存在一些性能和学习成本方面的考量,但在大多数业务场景下,ORM框架的优势远大于其局限性。选择适合项目需求的ORM框架,遵循最佳实践进行开发,将帮助开发者构建出高效、健壮的数据访问层。对于现代应用程序开发而言,掌握ORM框架已成为每个开发者的必备技能。

2025-03-23 15:24:45 945

原创 Entity Framework框架

是微软开发的开源对象关系映射(ORM)框架,它充当了应用程序对象与数据库之间的桥梁。通过EF,开发者可以使用面向对象的编程方式操作数据库,而无需直接编写SQL语句。Code First:先编写实体类,然后通过迁移生成数据库表结构Database First:基于现有数据库生成实体类本文将重点演示Code First模式,这是现代开发中更常用的方式。创建Student.cs[Key]set;set;set;

2025-03-23 15:13:10 723

原创 结构型设计模式

适配器解决接口不匹配问题代理优化对象访问控制装饰器实现动态功能扩展。

2025-03-22 17:46:19 380

原创 创造型设计模式

抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。创造性设计模式提供了多种灵活的对象创建方式,帮助我们在不同的场景下更好地管理对象的创建过程。单例模式确保全局唯一实例,原型模式通过复制对象来创建新对象,三大工厂模式(简单工厂、工厂方法、抽象工厂)提供了不同层次的抽象来创建对象,而建造者模式则将复杂对象的构建过程分离出来。通过合理使用这些设计模式,我们可以提高代码的可维护性和可扩展性。

2025-03-20 20:22:19 523

原创 西门子PLC

通过合理选择协议与开发工具,C#能够高效实现与西门子PLC的深度集成。建议开发者优先测试HslCommunication等成熟库,结合本文提供的代码框架快速搭建工业控制系统。通过S7-1200 PLC控制步进电机,使用C#上位机实现速度/位置调节。专用于Modbus协议的轻量级库,适合跨品牌设备集成。

2025-03-19 22:33:20 740

原创 Modbus协议

总的来说,简单是 Modbus 如此普遍的主要原因。消息检查是 Modbus 如此受欢迎的另一个原因。CRC 和 LRC 检查意味着检查传输错误的准确率达到 99%。概括来讲,Modbus就是一种用于工业控制的协议,具有免费使用、上手简单、修改方便三大特点,已经被广泛使用。此协议支持传统的RS-232、RS-485、RS-422和以太网设备。许多工业设备,包括PLC,DCS,智能仪表,变频器等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

2025-03-18 21:37:53 946

原创 使用c#进行串口通信

串口通信(serial communication)是一种设备间非常常用的串行通信方式,大部分电子设备都支持,电子工程师再调试设备时也经常使用该通信方式输出调试信息。讲到某一种通信协议,离不开的就是物理层,物理层主要表现形式是电平信号的高低幅值,分别代表的状态。串口的物理层有很多标准,主要包含RS232标准,该标准规定了信号的用途、通信接口以及信号的电平标准;在上面的通讯方式中,两个通讯设备的“DB9接口”之间通过串口信号线建立起连接,串口信号线中使用“RS-232标准”传输数据信号。

2025-03-16 22:39:28 962

原创 WPF模板

控件模板控件模板使用XAML来定义,它们通常包含一系列布局元素和呈现元素,这些元素共同构成了控件的外观。以下是一个简单的控件模板示例,它定义了一个具有圆角和内容的按钮:</</</在这个示例中,的x:Key属性为模板指定了一个唯一的键名TargetType属性指定了模板应用的控件类型(本例中为Button)。模板内容包含一个Border元素,用于定义按钮的边框、背景和圆角,以及一个元素,用于呈现按钮的内容。数据模板数据模板同样使用XAML定义,它们通常包含用于显示数据对象的布局元素和绑定表达式。

2025-02-07 16:15:06 1110

原创 C# 中的 Task 和 Async/Await

在 C# 中,Task 表示一个可运行的异步操作。通过使用 Task,开发者可以在后台线程中执行长时间运行的操作,而不阻塞主线程(通常是 UI 线程)。这意味着用户界面可以继续响应用户的操作,提供流畅的体验。通过 C# 中的Task和,开发者能够轻松地为应用程序添加异步支持,提供更好的用户体验和更简单可读的代码。随着异步编程变得越来越普遍,掌握这些工具和技术将在编写高性能与响应式应用程序时游刃有余。

2025-01-09 11:26:28 751

原创 正则表达式

正则表达式是一种描述字符串模式的语法规则。它由普通字符(如字母、数字)和特殊字符(元字符)组成,用于定义匹配规则。正则表达式可以用于:验证字符串是否符合特定格式(如邮箱、手机号)。从文本中提取特定内容(如 URL、日期)。替换文本中的特定部分。正则表达式是一种强大的文本处理工具,掌握其基本语法和用法可以极大地提高开发效率。

2025-01-02 13:58:46 745

原创 C# 事件机制

在类中使用event关键字定义事件。// 定义一个事件// 触发事件的方法Click?如果需要传递自定义数据,可以定义自定义事件参数类。set;事件是对象间通信的重要机制,用于处理特定动作的发生。定义事件:使用event关键字定义事件。订阅事件:使用+= 运算符订阅事件。处理事件:编写事件处理程序方法。触发事件:在适当的地方调用触发事件的方法。取消订阅:使用-= 运算符取消订阅事件。

2025-01-02 11:28:32 583

原创 Action&&Func

Action 委托Action是一个不带返回值的委托,它可以接受最多 16 个参数。Action 通常用于表示一个无返回值的方法。无返回值。可以不带参数,也可以带参数(最多 16 个)。常用于事件处理或执行某些操作。// 无参数的 Action");sayHello();// 带一个参数的 Actionname!");// 带多个参数的 Actiona。

2025-01-01 20:54:35 511

原创 Lambda 表达式学习

Lambda表达式是一种匿名函数,它可以包含表达式或语句块,并且可以作为参数传递给方法或赋值给委托。Lambda表达式的核心优势在于其简洁性和灵活性,尤其是在需要传递简单逻辑时,它可以显著减少代码量。

2025-01-01 19:37:06 275

原创 C# 委托(Delegate)学习

委托是一种类型,它定义了方法的签名。通过委托,我们可以将方法作为参数传递给其他方法,或者将多个方法组合在一起进行调用。委托的主要用途是实现事件和回调机制。委托是C#中非常强大的特性,它允许我们将方法作为参数传递,或者将多个方法组合在一起进行调用。通过委托,我们可以实现事件处理、回调机制等功能。掌握委托的使用,将有助于我们编写更加灵活和可扩展的代码。

2024-12-31 21:24:50 443

原创 反射机制学习

反射是C#中非常强大的功能,它允许程序在运行时动态地获取类型信息并操作对象。

2024-12-30 22:08:06 366

原创 c#泛型学习

【代码】c#泛型学习。

2024-12-28 11:33:04 524

原创 每日一题——第一百四十二题

【代码】每日一题——第一百四十二题。

2024-12-15 17:17:02 198

原创 每日一题——第一百四十一题

10020// 函数声明// 输入短文printf("请输入一行英文短文(短文长度不超过100,单词长度不超过20),短文最后以. 结尾:\n");// 调用函数找到最长的单词// 输出结果printf("原文短文: %s\n", essay);printf("最长单词: %s\n", largestWord);printf("最长单词长度: %d\n", maxLength);return 0;/// 找到最长的单词并求其长度。

2024-12-13 14:40:30 524

原创 每日一题——第一百四十题

开辟一个与数组等长的bool数组, 用于标记是否需要删除的元素,循环比较数组的每两个元素的和,每次固定一个元素的值,与其他数组元素进行比较, 如果和为10,则标记当前一对元素为需要删除的元素 ,然后移动到下一元素,再进行比较, 依次标记完数组中的所有元素。最后将未被标记的元素存放进新的数组中。

2024-12-13 11:10:48 343

原创 每日一题——第一百三十九题

/思路:循环比较数组的每两个元素的和,每次固定一个元素的值,与所有数组元素进行比较, 如果和为10,则跳过当前元素 ,移动到下一元素,// 固定下一个元素,再依次比较与数组中元素和。如果不等,则保存当前固定下来的元素到新数组中。

2024-12-13 10:38:35 256

原创 每日一题——第一百三十八题

【代码】每日一题——第一百三十八题。

2024-12-12 17:16:54 232

原创 每日一题——第一百三十七题

【代码】每日一题——第一百三十七题。

2024-12-12 16:46:55 352

原创 每日一题——第一百三十六题

sprintf。

2024-12-12 16:23:20 439

原创 每日一题——第一百三十五题

【代码】每日一题——第一百三十五题。

2024-12-10 16:04:27 229

原创 每日一题——第一百三十四题

【代码】每日一题——第一百三十四题。

2024-12-09 15:11:09 150

原创 每日一题——第一百三十三题

【代码】每日一题——第一百三十三题。

2024-12-09 13:55:11 139

原创 每日一题——第一百三十二题

【代码】每日一题——第一百三十二题。

2024-12-07 14:51:12 138

原创 每日一题——第一百三十一题

【代码】每日一题——第一百三十一题。

2024-12-07 14:31:03 184

原创 每日一题——第一百三十题

【代码】每日一题——第一百三十题。

2024-12-02 17:32:01 226

原创 每日一题——第一百二十九题

【代码】每日一题——第一百二十九题。

2024-12-02 15:24:33 190

原创 每日一题——第一百二十八题

分析:题目要求得到字符串中最后一个单词的长度,可以反向遍历字符串,寻找最后一个单词并计算其长度。由于字符串中至少存在一个单词,因此字符串中一定有字母。首先找到字符串中的最后一个字母,该字母即为最后一个单词的最后一个字母。从最后一个字母开始继续反向遍历字符串,直到遇到空格或者到达字符串的起始位置。遍历到的每个字母都是最后一个单词中的字母,因此遍历到的字母数量即为最后一个单词的长度。//从后往前遍历,遇到空格, 索引值前移一位index--;//定义单词长度= ' '){//有效字符。

2024-11-28 15:55:44 300

原创 每日一题——第一百二十七题

【代码】每日一题——第一百二十七题。

2024-11-26 17:26:00 182

原创 wpf中几种获取ComBox中值的方法

【代码】wpf中几种获取ComBox中值的方法。

2024-11-19 09:01:48 704

原创 使用c#实现TCP客户端与服务器端

这个类将包含连接到服务器、发送数据和接收数据的方法。实例化这个类并使用它的方法来与服务器进行通信。

2024-11-11 14:43:53 1845

原创 每日一题——第一百二十六题

【代码】每日一题——第一百二十六题。

2024-11-11 10:07:57 234

原创 每日一题——第一百二十五题

【代码】每日一题——第一百二十五题。

2024-11-08 09:21:22 183

原创 每日一题——第一百二十四题

【代码】每日一题——第一百二十四题。

2024-11-07 16:25:51 407

原创 每日一题——第一百二十三题

【代码】每日一题——第一百二十三题。

2024-11-07 10:44:44 262

空空如也

空空如也

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

TA关注的人

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