- 博客(50)
- 收藏
- 关注
原创 C#:深入理解Thread.Sleep与Task.Delay
在C#编程中,处理延迟操作是一个常见的需求。Thread.Sleep 和 Task.Delay 都是实现延迟的常用方法,但它们在行为和适用场景上存在显著差异。本文将从多个方面详细比较这两种方法,并提供示例代码,帮助读者更好地理解和应用它们。
2025-03-19 18:17:59
1101
转载 c#:使用Modbus RTU协议
Modbus RTU协议是一种主从式通信协议,采用二进制编码,数据帧紧凑,传输效率高。它通过串口(如RS-232、RS-485)进行数据传输,适用于工业现场设备之间的通信。本文详细介绍了Modbus RTU协议的基本原理,并通过C#代码实现了功能码0x03、0x06和0x10的读写操作。Modbus RTU协议在工业自动化领域应用广泛,掌握其实现方法对于开发工业控制系统具有重要意义。希望这篇文章对您有所帮助!如果有任何问题,欢迎在评论区留言讨论。
2025-03-16 19:06:10
1559
原创 c#:使用串口通讯实现数据的发送和接收
串口通讯(Serial Communication)是一种常见的硬件设备与计算机之间的数据传输方式,广泛应用于工业控制、嵌入式系统、传感器数据采集等领域。本文将详细介绍如何使用C#实现基于串口通讯的数据发送和接收,并结合代码示例解析其实现过程。
2025-03-16 18:47:36
1647
原创 C#:使用UDP协议实现数据的发送和接收
UDP通讯的核心是UdpClient类,它封装了UDP协议的底层操作,提供了简单易用的接口。以下是UDP通讯的基本流程:初始化UDP客户端:绑定本地端口,准备接收数据。接收数据:通过UdpClient.Receive方法异步接收数据。发送数据:通过UdpClient.Send方法向目标地址发送数据。数据处理:对接收到的数据进行解析和处理。本文详细介绍了如何使用C#实现基于UDP协议的数据发送和接收。通过UdpClient类,我们可以轻松实现UDP通讯,并结合事件机制实现数据的传递和处理。
2025-03-16 18:26:12
1314
原创 c#:主窗体与子控件之间的数据传递:基于事件和委托的实现
本文详细介绍了如何通过事件和委托实现主窗体与子控件之间的数据传递。通过事件,主窗体可以将数据传递给订阅了事件的子控件;通过委托,子控件可以将方法传递给主窗体,实现双向通讯。这种设计模式不仅提高了代码的可维护性,还增强了模块之间的解耦性。希望这篇文章对您有所帮助!如果有任何问题,欢迎在评论区留言讨论。
2025-03-16 18:04:57
754
原创 基于C#的以太网通讯实现:TcpClient异步通讯详解
以太网通讯基于TCP/IP协议,是一种可靠的、面向连接的通讯方式。在C#中,System.Net.Sockets.TcpClient类提供了对TCP协议的支持,可以方便地实现客户端与服务器之间的通讯。本文将使用异步编程模型(APM)来处理连接、发送和接收数据,以提高程序的响应性和性能。
2025-03-16 17:38:29
1560
原创 c#:数据帧格式转化为二进制比特和将虚拟链路ID转换为MAC地址
首先使用BitConverter.GetBytes方法将整数数据帧转换为字节数组。然后,我们遍历字节数组,并使用Convert.ToString方法将每个字节转换为二进制字符串。最后,我们将所有的二进制字符串拼接在一起,得到最终的二进制比特字符串。C#使用BitConverter类将数据帧格式转化为二进制比特。
2024-04-25 16:21:43
288
原创 c#:简洁实现if-else语句
在C#中,可以使用三元运算符(?:)来简洁地实现if-else语句。另外还可以使用null合并运算符(?)来简化if-else语句。表达式2 注意:其中?代表的是是否为null。例如:当条件表达式为真时,返回表达式1的值,否则返回表达式2的值。表达式1 : 表达式2。
2024-04-08 18:02:22
700
原创 WPF中MVVM模式下加载窗体
ICommand 接口一般用在 MVVM 架构中。这里在 控件中,Command 属性绑定到“UpdateCommand”。由于 UpdateCommand 只不过是一个 ICommand 实例,因此在加载窗口时,它将检查 CanExecute 返回值,如果它返回 true,则它将启用按钮控件并且 Execute 方法已准备好使用,否则按钮控件将被禁用。1.在xaml中写入绑定事件ScriptManagerCmd。2.在vm.cs类中写入事件函数。3.加载窗体的xaml.vs。
2024-01-19 17:14:42
661
原创 c#键盘事件的使用
3.在MvvmLight中实现ICommand接口的类是RelayCommand,RelayCommand通过构造函数初始化Execute 和 CanExecute方法,因此,构造函数传入的是委托类型的参数,Execute 和 CanExecute则执行的是委托的方法。2.vm.cs写入对应的事件函数中。1.在xaml写入键盘绑定事件。RelayCommand类。
2024-01-19 14:33:47
959
原创 WPF:自定义按钮模板
自定义封装的按钮属性可写在<Button.Template>中Background="{TemplateBinding Background}"中的TemplateBinding代表使用按钮本身所使用的背景颜色 不在样式内修改背景颜色<Button Width="300" Height="100" Content="自定义按钮" Background="Bisque" FontSize="23" Foreground="Orchid">
2023-10-25 22:51:42
1251
原创 c#:ObservableCollection<T>的用法
ObservableCollection:表示一个动态数据收集,该集合在添加或删除项或刷新整个列表时提供通知。
2023-08-03 18:36:28
1017
原创 Wpf:通知更改的使用(INotifyPropertyChanged )
INotifyPropertyChanged 接口:用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。继承ViewModelBase 类即可 在具体使用的时候调用onproperchanged函数。对于对多个值的更改 将调用的内容 封装到对应的函数 可以添加一个专门用于更改值的类中。如何让函数自动识别需要修改的值?完成对text文本的值更改。
2023-05-24 22:49:26
991
原创 WPF关于Iconmmand的使用
Command 就是对函数的一种封装。只是在调用这个函数前,必须进行一个可执行判定。在MainViewModel类中 主要是负责业务方面的代码 完成对事件的绑定。在MyCommand 类中完成ICommand委托事件的处理。注意在需要在xaml.cs中指明数据的传入。
2023-05-24 21:37:19
174
原创 C#TCP传输协议
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议作用:CP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。
2023-03-24 15:02:39
4795
原创 WPF:样式的使用
1.WPF中各类控件元素,都可以自由设置样式2.字体FontFamily、字体大小FontSize、背景颜色Background、字体颜色Foreground、边距Margin、水平位置HorizontalAlignment、垂直位置VerticalAlignment等3.样式中可以实现继承的关系,触发器。
2023-02-19 18:44:23
329
原创 c#WPF基础布局使用
使用:以Button为例DockPanel.Dock代表属性设置的方向 根据容器的边界、元素进行Dock=“Top”、Left、Right、Button设置。
2023-02-19 18:17:02
409
原创 c#dataGridView控件水平滚动条不显示的原因
1.最主要的在dataGridView控件属性中的ScrollBars是否设为Both。2.检查表格列的属性,看 Frozen是否设置为false。Both代表水平和垂直方向根据实际需求自动显示滚动条。Horizontal 代表只水平显示滚动条。None 代表水平和垂直都不显示滚动条。Vertical 代表只垂直显示滚动条。如果设置为true,此时不显示滚动条。
2023-01-29 17:22:31
6135
原创 C#:string str=null、string str=““和string str=string.Empty的区别
string str=null 代表定义一个字符串,变量str,字符串的内容为空值string str=“” 代表一个字符串类型的str,并为其赋值为空string str=string.Empty string.Empty相当于"",Empty是一个静态只读的字段。
2022-12-24 14:48:19
1656
原创 工作转正PPT
首先要介绍自己,让领导们对自己有个初步印象,以防后面讲了很多领导也不知道是谁。最好有个开场白,不看ppt讲2分钟左右第二步,也是重中之重,要介绍实习期间自己做的任务有哪些,在这些任务中遇到的一些棘手的问题可以展开讲解,可掺杂一些自己从刚开始的不懂到最后逐渐上手的过程,尽可能多讲一些,否则三言两语结束会让领导误认为工作量很少,还有很多不足之处等等 ,控制7-8或者10分钟都可第三步:根据上述的任务介绍,可介绍自己在项目的一些感受,收获经验,以及不足之处,讲3-4分钟即可,不要过长、
2022-11-08 11:25:28
2929
37
原创 C# 关于IsNullOrWhiteSpace()的使用
使用:用于检查指定字符串是否为空,或仅包含空白字符。它返回布尔值 True 或 False。
2022-11-07 15:45:19
728
原创 c#:连接数据库,并向数据库MySQL中导入数据信息
(1)创建表空间为cabledb(2)在表空间下创建对应的table,例如cablebox 在表中编写对应的列 键值等等。
2022-10-11 15:38:57
1300
原创 c#:截取字符串长度
/str是字符串变量名,substring是截取方法,startIndex截取的起始字符,length是截取长度。方法二:利用substringz字符串截取。方法一:利用数组方式进行截取。
2022-09-20 15:56:46
4016
原创 前端:解决使用border-radiuse无效
今天准备使用半圆形导航条来动态转化页面 但是半圆效果一直展示不出来,后来查阅资料才得知使用!important可以解决问题语法为: 界面:在ie7及ie7+,firefox,chrome等浏览器下,已经可以识别 !important属性, 但是IE 6.0IE6及更早浏览器下仍然不能完全识别。important的样式属性和覆盖它的样式属性单独使用时(不在一个{}里),IE 6.0认为! important优先级较高,否则当含! important的样式属性被同一个{}里的样式覆盖时,IE 6.0
2022-07-12 15:17:27
479
原创 echarts:折线图、柱状图、饼图轮播提示数据
随着可视化屏幕的快速发展 越来越多的政府和企业开始使用可视化系,由于可视化系统是用户直观感受到的数据 ,不需要用户手动点击屏幕就可获取的数据,因此对于折线图,柱状图以及饼图轮播展示对应的数据是相当重要的,本文就介绍了插件的使用:使用插件可以做到如图所示的界面:由于不会做gif图,谅解谅解(1)下载 下载仓库 · 叶秀刚/echarts-auto-tooltip - Gitee.com或者echarts-tooltip-auto-show: echarts自动轮播tootip (gitee.com) 点击最
2022-07-09 14:59:32
2765
原创 echarts:实现3D柱状图 柱状图渐变颜色设置
重点部分:对于柱状图颜色的设置:(1): 其中柱状图的最上方的斜边形设置为type:‘pictorialBar’,symbol: ‘diamond’, 菱形symbolPosition: ‘end’,(2):对于柱状图本身的设置 type: ‘bar’,
2022-07-08 15:18:57
3471
原创 前端:echarts实现柱状图的多图表切换
(1)首先界面界面如图所示:此时默认的信息为总体车间的数据 数据中的信息 分别为麻阳 凤凰 吉首 怀化数据信息(2)点击信号机 会出现与之对应的数据 其余类似重点:1. 代码中总体车间为用户第一个所看到的2.点击信号机,轨道,道岔 要进行数据的准确的传递 以数组的形式的将各个车站数据分开HTML代码:需要引入对应的插件 否则会报错css代码块:如有错误 请及时留言...
2022-07-07 16:49:07
3744
原创 前端:jQuery使用eq的作用
eq用于下标过滤 根据元素的下标进行过滤作用一:用于遍历 eq() 方法返回带有被选元素的指定索引号的元素。其中eq经常与其他元素/选择器一起使用,来选择指定的组中特定序号的元素。 其中index值从0开始作用二:用作 :eq() 选择器...
2022-07-07 09:14:56
1190
原创 c#:有关EndsWith()方法的使用
1.EndsWith()方法作用是:用于检查当前字符串实例的结尾是否与指定的字符串匹配。果在此字符串的末尾找到指定的字符串,则返回 true,否则返回 false。2.EndsWith()的使用语法结构为EndsWith( string value )例子:用于判断_curDevBoxName尾值是一样,如果一样则执行this.GetJSBoxDistribution()函数 if(this._curDevBoxName.EndsWith("J")) this.GetJSBoxDistr
2022-05-17 17:07:56
2733
原创 c#:out的使用
out的使用1.作用为:oout 关键字会导致参数通过引用来传递2.用作:一个函数传递多个返回值,返回值的类型可以不同2.代表的含义为:当有多个不同类型的返回值时,可以把要返回的结果声明成out,再当做参数传递给函数。相关代码入下所示: int singleLineNo = 0;if (int.TryParse(cableLineCores[0], out singleLineNo)){lineCoreColor = this._dicColor[lstSingleLine[singleL
2022-05-13 11:24:15
1644
原创 C#:int.TryParse()与int.Parse()的使用
C#:int.TryParse()的使用1.int.TryParse(n1.Text, out P_int_Number)第一个参数代表被转换的参数第二个参数为转换后的参数 int类型,成功返回True,失败返回False2.int.Parse()表示的是一种类容转换;表示将数字内容的字符串转为int类型。 可出现以下几种情况:(1)如果字符串为空,则抛出ArgumentNullException异常;(2)如果字符串内容不是数字,则抛出FormatException异常;(3)如果字符串内
2022-05-13 10:28:05
4221
原创 c#:使用NPOI读取excel表格
读取excel表格public void ReadFromExcelFile(string filePath){ IWorkbook wk = null; string extension = System.IO.Path.GetExtension(filePath); try { FileStream fs = File.OpenRead(filePath); if (extension.Equals(".xls")) {
2022-05-10 15:54:46
12258
转载 c#:File.open()的使用
c#:File.open()的使用1.File.Open(String, FileMode)定义:File.Open(String, FileMode)是一个内置的 File 类方法,用于打开指定路径上的 FileStream,具有读/写访问权限,没有共享。public static System.IO.FileStream Open (string path, System.IO.FileMode mode);其中参数代指:path源文件名:这是要打开的指定文件。mode模式:此模式值指定是
2022-05-10 11:37:34
6558
原创 c#:using的使用
c#:using的使用using作为关键字常见的语法有:1、引用命名空间2、为命名空间或类型创建别名3、使用using语句1.作为引用命名空间语法结构为格式为: using + 命名空间名字常见的使用为using System.Data;using System.Drawing;using System.IO;using System.Text;2.为命名空间或类型创建别名当同一个cs引用了不同的命名空间,但这些命名控件都包括了一个相同名字的类型的时候,可以使用using关键字来
2022-05-10 11:14:15
727
原创 c#:使用NPOI操作excel文件
c#:使用NPOI操作excel文件首先NPOI是开源的POI项目的.NET版,可以使用读写Excel,Word,PPT等Office文件。在使用npoi时,需要声明using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using NPOI.XSSF.UserModel;using NPOI.SS.Util;IWorkbook: 该接口用于操作excel工作簿的一个接口,主要有两个实现 HSSFWorkbook : 用于读取ex
2022-04-28 14:15:31
5901
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人