自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(215)
  • 资源 (92)
  • 收藏
  • 关注

原创 打印自然常数E

自然常数,符号e,为数学中一个常数,是一个无限不循环小数,且为超越数,其值约为2.718281828459045。它是自然对数函数的底数。

2024-10-16 11:41:08 342

原创 C#使用TCP-S7协议读写西门子PLC(五)-测试程序

西门子PLC-S7协议测试读写基础数据类型、字符串、Unicode字符串等

2024-09-11 20:01:17 888

原创 C#使用TCP-S7协议读写西门子PLC(四)

这里我们进行读写基础数据类型、读取DB块的字符串、宽字符串、以及一系列连续数组。新建部分类文件SiemensS7ProtocolUtil.Integrated.cs主要方法读取任意连续字节数据,任意多个Byte读取--每次最多读取200个字节,如果超过200,自动分多次读取public OperateResult ReadSerialData(PlcRegisterCategory plcRegisterCategory, ushort offsetAddress, ushort

2024-09-11 19:22:02 1057

原创 C#使用TCP-S7协议读写西门子PLC(三)

这里我们进行封装读写西门子PLC的S7协议命令以及连接西门子PLC并两次握手新建部分类文件SiemensS7ProtocolUtil.ReadWrite.cs主要方法:连接西门子PLC并发送两次握手。两次握手成功后,才真正连接到PLCpublic OperateResult ConnectPlcAndHandshake(SiemensPlcCategory siemensPlcCategory, IPEndPoint endPoint, int timeout = 3000)生成一个写入字节数据

2024-09-11 18:48:10 1241

原创 C#使用TCP-S7协议读写西门子PLC(二)

这里,我们开始进行读写西门子PLC,西门子PLC作为Socket通信的服务端【TCP-Server】在读写PLC之前,我们先进行Socket-Client程序编写,用于连接TCP服务端【也就是西门子PLC】,为了方便进行,我们使用部分类partial的方式【当然使用父子继承类亦可】,新建类文件SiemensS7ProtocolUtil.csSiemensS7ProtocolUtil类是部分类,需使用关键字partial

2024-09-11 17:36:23 888

原创 C#使用TCP-S7协议读写西门子PLC(一)

西门子PLC的S7协议是西门子公司在ModbusTcp协议的基础上自定义的一种协议,仅支持西门子PLC,S7协议本质仍然属于TCP协议的一种自定义具体实现

2024-09-10 15:38:33 806

原创 C#使用MQTT(二):MQTT客户端

为了一个应用程序可以作为客户端和服务端,我们在Program.cs增加切换开关。文件FormMqttClient.Designer.cs。窗体FormMqttClient程序代码如下:客户端程序。新建Windows窗体FormMqttClient。窗体FormMqttClient设计器相关代码如下。文件FormMqttClient.cs。选择作为MQTT服务端和MQTT客户端。上一篇我们初步设计了MQTT服务端。这里我们设计客户端,接上一篇。运行客户端与服务端通信。

2024-09-04 16:57:45 1086

原创 C#使用MQTT(一):MQTT服务端

的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。我们使用MQTTnet.dll,程序集 MQTTnet, Version=4.3.6.1152。低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息。它工作在 TCP/IP协议族上,是为。管理Nuget包,输入关键字Mqtt。

2024-09-04 16:05:09 1751

原创 C#使用GDI对一个图像Image进行任意角度旋转

新建winform应用程序RotatedRectangleDemo,将默认的Form1重命名为FormRotatedImage。文件 FormRotatedImage.Designer.cs。文件FormRotatedImage.cs。基于上篇的基础上,对图片进行任意角度旋转。找一下测试图片 云无月.jpg。上一篇我们对矩形进行旋转。

2024-08-14 12:14:42 500

原创 区域与语言CultureInfo

这些信息包括区域性的名称、书写系统、使用的日历、字符串的排序顺序以及对日期和数字的格式化设置。使用LCID是为了标识不同地区和语言的代码。它是Locale Identifier(区域设置标识符)的缩写,用于表示不同地区和语言的组合。语言ID是指一种语言,而子语言ID指的是地区或区域设置。在Windows操作系统中,LCID被广泛用于识别和设置地区设置,如日期和时间格式、货币单位、数字格式、键盘布局等。LCID,全称 Locale Identifier,区域设置标识符,用于确定特定地区和语言的区域设置。

2024-08-09 16:27:30 339

原创 Profinet与以太网Ethernet的区别

PLC可编程逻辑控制器 基本上都是应用于工业,采用的通讯基本上都是profinet而各种网络通讯,比如浏览网页,视频,各种网络游戏,都是采用Ethernet通信综上所述,Profinet和以太网在技术规范、应用领域、通信速度和实时性、系统兼容性和互操作性以及数据处理和网络管理等方面存在显著差异。在选择网络通信技术时,需要根据具体的应用场景和需求进行选择。对于工业自动化领域来说,Profinet以其高度的实时性、兼容性和数据处理能力成为了一种理想的选择。

2024-07-24 17:09:48 1529

原创 解析西门子PLC的String和WString

西门子PLC有两种字符串类型,String与WStringString 用于存放英文数字标点符号等ASCII字符,每个字符占用一个字节WString宽字符串用于存放中文、英文、数字等Unicode字符,每个字符占用两个字节WString[50]为例:西门子PLC字符串类型 WString[50],占用104个字节(偏移量),第一第二个字节是最大长度,就是50,第三第四个字节是实际长度10,第五个字节之后就是Unicode码,PLC解析逻辑为找到第三第四个字节的长度actualLength,然后查找

2024-07-24 15:56:19 2387

原创 C#统一委托Func与Action

C#在System命名空间下提供两个委托Action和Func,这两个委托最多提供16个参数,基本上可以满足所有自定义事件所需的委托类型。几乎所有的 事件 都可以使用这两个内置的委托Action和Func进行处理。Action委托:Action定义提供0~16个参数,无返回值的委托Func委托:Func定义提供0~16个参数,有返回类型的委托共有17种重载:

2024-07-13 16:26:45 1038

原创 C#使用GDI对一个矩形进行任意角度旋转

C#对一个矩形进行旋转GDI绘图,可以指定任意角度进行旋转我们可以认为一张图片Image,本质就是一个矩形Rectangle,旋转矩形也就是旋转图片在画图密封类System.Drawing.Graphics中,矩形旋转的两个关键方法//设置旋转的中心点public void TranslateTransform(float dx, float dy);//旋转指定的角度【单位°】:旋转角度 从 X+ 到 Y+之间的旋转角度认为是正数public void RotateTransform

2024-06-01 15:41:18 1023

原创 C#中结构struct能否继承于一个类class,类class能否继承于一个struct

一般来说,当数据类型较小且需要频繁创建并传递时,例如表示坐标或颜色等简单的值类型,使用结构体更加合适,因为它们可以被分配在栈上,速度更快,且不需要垃圾回收。不能,因为在我现有的知识中理解的话,因为结构体是值类型而类是引用类型,所以类的资源是在堆上面的这样就可以达到我想象中的继承,因为它可以在堆上面存在,而不会像值类型那样随着程序运行结束终结,在C#设计中,所有的结构stuct都认为是一种轻量型的密封类,密封类sealed是无法被继承的。同样,类对象可以作为结构的成员变量,结构的示例也可以作为类的成员变量。

2024-05-29 11:41:18 1158

原创 C#中数组与列表,集合等的联系

C#中,所有数组都自动继承于System.Array这个抽象类,数组都为引用类型,所有对数组的更新都会导致源数组的元素值的篡改。而所有集合的根都来自可枚举接口IEnumerable数组有三种样式:数组的Rank(秩)属性代表数组的维数

2024-05-12 21:32:00 556

原创 C#中字典Dictionary与自定义类型CustomType之间的转换

C#中字典Dictionary与自定义类型CustomType之间的转换思路:可以使用反射System.Reflection来获取类的具体属性,属性名称就映射字典的键Key。新建控制台程序DictionaryCustomClassConversionDemo

2024-05-10 19:06:18 447

原创 C#调用java生成的WebService接口报错误【无法生成临时类(result=1)。 error CS0029】,解决方案:将锯齿数组X[][]修改为一维数组X[]即可

无法生成临时类(result=1)。error CS0029: 无法将类型“XX.stackTraceElement”隐式转换为“XX.stackTraceElement[]”之前使用调用WebService接口时,使用生成工具生成代码文件 Reference.cs。这里有个锯齿数组 stackTraceElement[][] suppressedField。编译和运行都没问题,当调用相关代码实例化WebService时,出错。解决方案是 修改 锯齿数组为单个一维数据即可。

2024-04-24 10:33:59 303

原创 关于使用TCP-S7协议读写西门子PLC字符串的问题

对西门子PLC字符串的读写逻辑如下:西门子PLC字符串逻辑 string[50],占用52个字节(偏移量),第一个字节是最大长度,就是50,第二个字节是实际长度24,第三个字节之后就是ASCII码,PLC解析逻辑为找到第二个字节的长度length.,然后查找length个字符,就结束

2024-03-24 17:39:48 1972

原创 关于OPC-UA客户端调用服务端方法CallMethod节点的问题

注意,调用方法节点时,必须传入指定的参数类型的值,不能传入可以隐式转化的实参比如在OpcServer服务器上有个方法节点,方法名为readJob,需要传入两个参数 (byte sourceNumber, short jobNo),返回一个工作名称string jobName 方法整体描述为 string readJob(byte sourceNumber, short jobNo)传入的实参 new object[]{1,23};会抛出异常,因1和23在C#中是Int32类型,不是byt

2024-03-15 22:50:23 726

原创 禁用文本框输入中文,禁用中文输入法的ImeMode方法

之前遇到一个问题,在文本框切换输入法为中文后,使用扫码枪扫码时会出现 比如条码NH123456 在文本框内会显示 你好23456这里可以使用输入法编辑器ImeMode枚举属性如果文本框只能输入英文数字,可以使用ImeMode.Disable,但默认不能拦截复制和粘贴按钮中文字符如下属性ImeMode.Disable即可无法使用中文输入法只能输入字母数字,但无法禁用Ctrl+V复制粘贴键

2024-03-13 19:38:15 1128

原创 使用GDI画图片生成合成图片并调用打印机进行图片打印

新建窗体应用程序PrinterDemo,将默认的Form1重命名为FormPrinter,添加对。zxing.dll,zxing.presentation.dll用于生成条形码,二维码。新建关键类文件PrinterUtil,用于合成图片【文本,条形码均为图片】Newtonsoft.Json.dll用于读写Json字符串。FormPrintSetting.Designer.cs文件。FormPrinter.Designer.cs文件。FormPrintSetting.cs文件。

2024-02-06 14:30:09 889

原创 开源节点框架STNodeEditor使用

节点,一般都为树形Tree结构,如TreeNode,XmlNode。树形结构有其关键属性Parent【父节点】,Children【子节点】LinkedListNode为链表线性结构,有其关键属性Next【下一个】,Previous【上一个】,可以用其进行工作流workFlow设计右键 项目 STNodeDemo,管理NuGet程序包输入关键字STNodeEditor安装完成后。

2024-02-04 17:41:15 2912 1

原创 C#实现坐标系转换

部分类文件FormCoordinateTrans.Designer.cs。新建关键的坐标转换类CoordinateTransHelper。已知坐标系的向量线段AB,旋转指定角度后平移到达坐标A'B'文件FormCoordinateTrans.cs。获取旋转角度以及新的其他坐标转换。新建坐标结构Coord。

2024-02-04 12:11:21 1483

原创 Sqlite真空命令VACUUM

之前在项目中使用了sqlite数据库,当日志变大时,执行CRUD操作就会变慢后来尝试删除7天前的记录进行优化发现sqlite文件的大小就没有变化,delete命令只是逻辑删除,所在的文件的字节码仍然还在,优化效果仍不明显。使用真空命令VACUUM即可压缩文件

2024-01-24 11:23:43 1989 1

原创 C#中对浮点数NaN,PositiveInfinity,NegativeInfinity的特殊处理

C#中对浮点数的特殊处理 NAN,NAN 整体意思为Not a Number 不是一个数,NaN(Not a Number,非数)是中数值的一类值,表示未定义或不可表示的值。常在运算中使用。首次引入NaN的是1985年的浮点数标准。EEE 754-1985中,用指数部分全为1、小数部分非零表示NaN。以32位IEEE单精度浮点数的NaN为例,按位表示即:S111 1111 1AXX XXXX XXXX XXXX XXXX XXXX,S为符号位,符号位S的取值无关紧要;

2024-01-14 11:52:13 1402

原创 使用netdxf(C#)框架实现dxf文件读取与导出坐标

添加实体:dxfDocument.Entities.Add(EntityObject entity);可以认为是立体三维坐标(x,y,z)可以认为是平面二维坐标(x,y)关键函数Save()用于保存文件。关键函数Load()用于加载文件。关键结构 netDxf.Vector3。关键结构 netDxf.Vector2。【获取所有半径为3的圆极柱】

2024-01-12 17:33:20 5986

原创 关于String.Format混合$符号格式化引发的问题

之前一个老项目是用string.Format()进行格式化的,.net 4.5之后的版本 引入 $"字符串" 格式化标识符,一劳永逸解决问题的方式:格式化字符串时要么只使用string.Format,要么使用$格式化符。两者尽量不要混合一起使用。

2023-12-13 09:58:51 149

原创 C#使用随机数模拟英雄联盟S13瑞士轮比赛

C#使用随机数模拟英雄联盟S13瑞士轮比赛,仿真窗体应用程序LOL_S13Demo。

2023-11-05 16:31:14 1240 1

原创 获取中文词组的汉语拼音首字母拼接

(我们发现:女娲石,应为NWS,但显示为NWD,因我们只考虑第一个读音石:dan)文件:FormChinesePinyinMapping.Designer.cs。我们可以采用字符字典法,穷举出所有的汉字【暂只考虑简体中文】文件:FormChinesePinyinMapping.cs。比如中文词组获取其汉语拼音首字母并拼接起来,添加对NPOI操作Excel的支持库。比如{'中',"Z"},输出功率3:SCGL3。{'国',"G"},将其设置为 始终复制。

2023-09-17 20:59:48 353

原创 打印所有声母,韵母组合汉语拼音并显示到表格中

需求:现在我们做一个窗体应用程序,显示出所有的汉语拼音,以及声母与韵母合并在一起是否可组成有效拼接,如果无效,就按×标识,点击某一个单元格可以显示是否可组成拼接,如果可组成拼音,就显示出示例汉字。

2023-08-25 18:29:45 104201

原创 C#获取DataTable的前N行数据然后按指定字段排序

获取DataTable的前N行数据然后按指定字段排序可以使用以下三种代码:第一种:使用Linq第二种:使用默认视图的Sort属性第三种:使用循环迭代

2023-08-24 14:29:35 2376

原创 C#导入数据使用Task异步处理耗时任务

C#多线程中,我们可以使用async和await来异步处理耗时任务。现在我们打开一个Excel表格,将Excel表格的每一行数据进行处理,并存储到数据库中。

2023-08-10 19:35:37 935

原创 C#调用百度翻译API自动将中文转化为英文,按行转换

【代码】C#调用百度翻译API自动将中文转化为英文,按行转换。

2023-08-08 20:12:08 3115

原创 C#上位机软件支持中英文多语言切换MultiLanguage

多语言切换思路:使用不同的xml配置文件来映射不同的语言,窗体加载时从默认语言DefaultLanguage.xml中读取配置,比如中文语言 对应Chinese.xml英文语言 对应English.xml比如一个Button控件 btnLogin,因某个窗体的某一个控件的变量名是绝对唯一的我们可以通过键值对字典来进行处理,键名都是控件的变量名称,值为控件的文本内容中文语言在Chinese.xml 设置Name="btnLogin" Text="登录"英文语言在English.xml 设置Name

2023-07-19 16:37:09 4686 1

原创 C#使用Linq和Loop计算集合的平均值、方差【标准差】

方差的算术平方根=s=sqrt(((x1-x)^2 +(x2-x)^2 +......(xn-x)^2)/n)总体标准差=σ=sqrt(((x1-x)^2 +(x2-x)^2 +......(xn-x)^2)/n )当所有数(个数为n)概率性地出现时(对应的n个概率数值和为1),则x为该组数的。数组的所有数分别减去平均值,得到的n个差值分别取平方,再将得到的所有。所有数(个数为n)记为一个数组[n]。则除以n,若所求为样本标准差则除以(n-1),最后把得到的商取。(n个数据)的标准差。

2023-07-19 13:54:15 2823

原创 C#使用Chart进行统计,切换不同的图表类型

每隔5秒钟自动刷新OK和NG数量,可以切换使用柱状图、环形、线性图、饼图等显示。ChartDemo,将默认的Form1,重命名为FormChart,

2023-07-14 17:48:43 1713 2

原创 WPF中集合ObservableCollection<T>的使用

​WPF 提供ObservableCollection类,该类是实现INotifyCollectionChanged接口的数据收集的内置实现。public class ObservableCollection : Collection, INotifyCollectionChanged, INotifyPropertyChanged​

2023-05-24 17:41:14 1840

原创 C#通用的二进制转化为float和double方法

float(Real、Single) 32位 第一位为1代表负数,第一位为0代表正数或者0第二位到第九位代表 指数位,对应的值减去127就是移位数【shiftCount】第十位开始】尾数23位前面加一个1,凑够24位,这个24位尾数的前【shiftCount+1】个数就是整数部分,剩下的就是小数部分double(LReal、Double) 64位 第一位为1代表负数,第一位为0代表正数或者0第二位到第十二位代表 指数位,对应的值减去1023就是移位数【shiftCount】第十三位开始】尾数52位前面加一

2023-05-22 15:17:54 4170

原创 C#中将32位二进制转换为float【Real】十进制类型

二进制32位转换为float【Real】规则第一位为1代表负数,第一位为0代表正数或者0第二位到第九位代表 指数位,对应的值减去127就是移位数【shiftCount】【第十位开始】尾数23位前面加一个1,凑够24位,这个24位尾数的前【shiftCount+1】个数就是整数部分,剩下的就是小数部分整数二进制转为10进制:从低位到高位分别是2的0次幂、1次幂、2次幂……,分别相乘再相加,得到的和即为10进制结果。小数部分的二进制转换位10进制:与整数部分类似,从小数点开始分别是2的-1次幂、

2023-05-17 17:49:51 3153

C#使用MQTT测试,客户端和服务端

C#使用MQTT测试

2024-09-04

C#使用GDI对一个图像Image进行任意角度旋转

C#使用GDI对一个图像Image进行任意角度旋转

2024-08-14

使用GDI画图片生成合成图片并调用打印机进行图片打印

使用GDI画图片生成合成图片并调用打印机进行图片打印

2024-02-06

使用netdxf(C#)框架实现dxf文件读取与导出坐标

使用netdxf(C#)框架实现dxf文件读取与导出坐标

2024-01-12

C#使用随机数模拟英雄联盟S13瑞士轮比赛

C#使用随机数模拟英雄联盟S13瑞士轮比赛

2023-11-05

获取中文词组的汉语拼音首字母拼接

GBK汉字拼音对照表

2023-09-17

SaveDefaultXmlConfigDemo.rar

C#读写应用程序配置文件App.exe.config,本质是xml文件的读写。 我们将配置文件的AppSettings节点和ConnectionStrings节点内容自动绑定到分组框控件GroupBox中,同时可以批量保存。

2022-06-29

C#使用GDI绘制九宫格

C#使用GDI绘制九宫格 DrawDiagramUtil.GenerateEightDiagramSymbol(panel8, "坎一", 2, Color.Green); DrawDiagramUtil.GenerateEightDiagramSymbol(panel3, "坤二", 0, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel4, "震三", 1, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel1, "巽四", 6, Color.Yellow); DrawDiagramUtil.GenerateFiveCenter(panel5, "中宫五"); DrawDiagramUtil.GenerateEightDiagramSymbol(panel9, "乾六", 7, Color.Green);

2022-05-24

九宫格与EightDiagram的画图GDI

九宫与方位 DrawDiagramUtil.GenerateEightDiagramSymbol(panel8, "坎一", 2, Color.Green); DrawDiagramUtil.GenerateEightDiagramSymbol(panel3, "坤二", 0, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel4, "震三", 1, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel1, "巽四", 6, Color.Yellow); DrawDiagramUtil.GenerateFiveCenter(panel5, "中宫五"); DrawDiagramUtil.GenerateEightDiagramSymbol(panel9, "乾六", 7, Color.Green);

2022-05-16

西西弗斯黑洞【123数字黑洞】 卡普雷卡尔黑洞(重排求差黑洞):三位数黑洞495

西西弗斯黑洞【123数字黑洞】 /// ​设定一个任意数字串,数出这个数中的偶数个数,奇数个数,及这个数中所包含的所有位数的总数 /// 比如86420135799,按照偶数个数5,奇数个数6,数字总个数11,拼接成一个新的整数 5611 /// 然后依次转化为134,然后转化为123结束 卡普雷卡尔黑洞(重排求差黑洞):三位数黑洞495 /// 三个0~9之间的数字【不能完全相同】组成的三位数的最大值 减去 最小值,获取一个【差值】新三位数(不够就补0) /// 对三位数继续计算最大值 和 最小值,最终差值(终结黑洞值)为495

2022-05-04

FixedDemo C# fixed

使用fixed指针修改内存的值,不能使用fixed关键字获取结构的地址, 坐标,fixed关键字不能获取已固定的表达式的地址 /// 因此fixed不能获取结构struct的地址

2022-04-04

使用循环【迭代】来进行转化数字为中文

/// <summary> /// 对【0000~9999】之间的数字进行迭代解析成中文 /// 类似于除基取余法 /// </summary> /// <param name="multiple">倍率</param> /// <param name="number">需要解析的数字</param> /// <returns></returns> private static string GetChinese(int multiple, int number) { if (number == 0) { return ChineseCollection[0].ToString(); } string chinese = string.Empty; int quotient = 0;//商

2022-03-25

NumberToChineseDemo

/// <summary> /// 数字与中文描述转化示例 /// </summary> public class NumberChineseTranslateUtil { /// <summary> /// 中文字符描述集合 /// 十索引为10 /// 百索引为11 /// 千索引为12 /// 万索引为13 /// 亿索引为14 /// </summary> static readonly char[] ChineseCollection = new char[] { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十','百','千','万','亿' }; /// <summary> /// 数字转中文 /// 按照【个、十、百、千、万、亿】 /// 只考虑正整数和

2022-03-24

根据运算符的优先级,依次添加到堆栈中 /// 最终返回的列表不存在左右小括号,只有数字 以及 加减乘除运算符

StackCalculateUtil RecursionCalculateUtil 使用递归,计算含有小括号,加减乘除的表达式 /// 1.查找小括号,然后依次消去所有的小括号,此时表达式没有小括号 /// 2.进行乘除运算 /// 3.最后进行加减运算

2022-03-21

C#常见位操作 与或非 BitOperation

Console.WriteLine($"与(&)操作符的位都为1时,才为1,其他都为0,因此与(&)操作符的结果范围在[0, Math.Min(x,y)],x,y均为正整数"); Console.WriteLine($"或(|)操作符的位都为0时,才为0,其他都为1,因此或(|)操作符的结果范围在[Math.Max(x,y), x+y],x,y均为正整数"); Console.WriteLine($"非(~)操作符按位取反,1转化为0, 0转化为1,因此非(~)操作符满足[x+~x=-1]一个数与其取反操作之和为-1"); Console.WriteLine($"异或(^)操作符的位不同时为1, 位相同时为0"); Console.WriteLine($"左移(<<)操作符:【最左侧位不要,在最右侧补0】,相当于乘以2个N次方,【移位是除以32后的余数,范围[0,31],即以32为一个周期】"); Console.WriteLine($"右移(>>)操作符:【最右侧位

2022-03-05

AutoSaveTreeNodeDataDemo

private void tvMesInterface_AfterSelect(object sender, TreeViewEventArgs e) { ReadConfig(e.Node.Text); //记录选中的节点 LastSelectedNode = e.Node; } /// <summary> /// 内部成员变量标记,确保BeforeSelect事件不会多次触发 /// </summary> bool inside = false; private void tvMesInterface_BeforeSelect(object sender, TreeViewCancelEventArgs e) { if (!inside) { inside = true;

2022-03-04

AutoGetFileTypeDemo.rar

自动获取真实文件类型

2022-01-06

TrainPathBookingDemo.zip

多人抢火车票模拟器

2021-12-26

MazeDemoConsole.rar

迷宫控制台

2021-12-15

MazeTest.rar

迷宫

2021-12-15

Base64ConsoleDemo.rar

Console.WriteLine($"比较 手动转化 与 调用系统函数转化 Base64结果:【{base64Custom == base64Auto}】"); Console.WriteLine($"比较 手动还原 与 调用系统函数还原 Base64结果:【{srcCustom == srcAuto}】");

2021-12-11

Base64EncoderDemo.rar

Base64属于简单加密算法的一种。类似于凯撒密码【它是一种替换加密的技术】 Base64字符串由65个字符组成, 大写字母A~Z, 小写字母a~z, 数字0~9,以及三个特殊字符+、/、= 【=“等号”用于补充字符,使Base64字符串长度变成4的倍数】

2021-12-10

OmronFinsDemo.rar

OmronFins TCP通信,使用C#

2021-11-16

BIndDataDemo.zip

DataGridView数据绑定 刷新,多行数据

2021-11-07

软件打包安装工具.rar

软件打包安装工具

2021-10-15

MultiThreadMySqlDemo.rar

读写mysql数据库测试

2021-10-10

WorkOrderDemo.rar

工单混料生产方案

2021-09-12

InovancePlcDemo.rar

汇川PLC的Modbus测试Demo

2021-09-08

modbus协议报文分析_汇川PLC.docx

Modebus报文详解 0x03 读取多个类型寄存器 0x10写多个连续寄存器

2021-09-04

DeviceStatusDemo.rar

设备状态监控DeviceStatusDemo, 保存到本地sqlite数据库中

2021-08-07

QRCodeDemo.rar

生成二维码与解析二维码

2021-07-02

CommonFormDesignerDemo.rar

统一列表界面和编辑界面,只使用两个界面即可实现 增删改查 某个表单 DataGridViewConf_Form.xls AutoGenerateUtil.cs NpoiExcelOperateUtil.cs

2021-05-09

AutoGenerateFormExtern.rar

自动生成CRUD,表单相关代码 DataGridViewConf_Form.xls sh_db.sql AutoGenerateUtil.cs

2021-05-08

AutoGenerateForm.rar

自动生成实体类工具 sb.AppendLine($@" /// <summary> /// {columnComment} /// </summary>{attributeMessage} public {dataType} {columnName} {{ get; set; }}");

2021-04-27

BatchUnlockResFileDemo.rar

批量解除资源文件的锁定 使用CMD命令 参考文档: https://docs.microsoft.com/zh-cn/sysinternals/downloads/streams 需要下载 [Streams\\streams64.exe]文件 -d 针对文件或文件夹执行 -s -d 可以递归执行文件夹下的子文件\子文件夹

2021-04-16

TextEditorDemo.zip

ICSharpCode.TextEditor是一种开源的代码与文本编辑器。TextEditor(和SharpDevelop一样)经常使用策略模式。法高亮通常是由一个DefaultHighlightingStrategy类的实例

2021-01-31

FibonacciSequenceDemo.rar

现在使用四种方式: 一、递归 二、For循环【使用临时变量】 三、For循环【无临时变量】 四、使用数组作为临时仓库 测试四种算法的性能。以及计算出从第几项开始,超过Int32的最大值 新建控制台应用程序FibonacciSequenceDemo

2020-11-10

TestServer_SuperSocket.rar

appServer.Setup(serverConfig) appServer.Start() //客户端连接事件             appServer.NewSessionConnected += AppServer_NewSessionConnected;             //接收事件             appServer.NewRequestReceived += AppServer_NewRequestReceived;             //客户端已关闭事件             appServer.SessionClosed += AppServer_S

2020-10-22

线程安全集合类Concurrent测试

Task task = BlockingCollectionUtil.AddTakeBlockingCollectionAsync(); Task.WaitAny(task); BlockingCollectionUtil.TryTakeBlockingCollection(); ConcurrentBagUtil.Test(); ConcurrentDictionaryUtil.Test(); ConcurrentQueueUtil.Test();

2020-10-17

C#教程20201015.pdf

C#完全基本教程,关键字,条件跳转,迭代,泛型,反射,多线程,异步方法 if,else,for,partial class,enum,struct,interface,delegate

2020-10-15

空空如也

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

TA关注的人

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