![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
文章平均质量分 64
斯内科
这个作者很懒,什么都没留下…
展开
-
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 · 647 阅读 · 0 评论 -
C#中结构struct能否继承于一个类class,类class能否继承于一个struct
一般来说,当数据类型较小且需要频繁创建并传递时,例如表示坐标或颜色等简单的值类型,使用结构体更加合适,因为它们可以被分配在栈上,速度更快,且不需要垃圾回收。不能,因为在我现有的知识中理解的话,因为结构体是值类型而类是引用类型,所以类的资源是在堆上面的这样就可以达到我想象中的继承,因为它可以在堆上面存在,而不会像值类型那样随着程序运行结束终结,在C#设计中,所有的结构stuct都认为是一种轻量型的密封类,密封类sealed是无法被继承的。同样,类对象可以作为结构的成员变量,结构的示例也可以作为类的成员变量。原创 2024-05-29 11:41:18 · 928 阅读 · 0 评论 -
C#中数组与列表,集合等的联系
C#中,所有数组都自动继承于System.Array这个抽象类,数组都为引用类型,所有对数组的更新都会导致源数组的元素值的篡改。而所有集合的根都来自可枚举接口IEnumerable数组有三种样式:数组的Rank(秩)属性代表数组的维数原创 2024-05-12 21:32:00 · 476 阅读 · 0 评论 -
C#中字典Dictionary与自定义类型CustomType之间的转换
C#中字典Dictionary与自定义类型CustomType之间的转换思路:可以使用反射System.Reflection来获取类的具体属性,属性名称就映射字典的键Key。新建控制台程序DictionaryCustomClassConversionDemo原创 2024-05-10 19:06:18 · 339 阅读 · 0 评论 -
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 · 164 阅读 · 0 评论 -
关于使用TCP-S7协议读写西门子PLC字符串的问题
对西门子PLC字符串的读写逻辑如下:西门子PLC字符串逻辑 string[50],占用52个字节(偏移量),第一个字节是最大长度,就是50,第二个字节是实际长度24,第三个字节之后就是ASCII码,PLC解析逻辑为找到第二个字节的长度length.,然后查找length个字符,就结束原创 2024-03-24 17:39:48 · 1043 阅读 · 0 评论 -
关于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 · 504 阅读 · 0 评论 -
禁用文本框输入中文,禁用中文输入法的ImeMode方法
之前遇到一个问题,在文本框切换输入法为中文后,使用扫码枪扫码时会出现 比如条码NH123456 在文本框内会显示 你好23456这里可以使用输入法编辑器ImeMode枚举属性如果文本框只能输入英文数字,可以使用ImeMode.Disable,但默认不能拦截复制和粘贴按钮中文字符如下属性ImeMode.Disable即可无法使用中文输入法只能输入字母数字,但无法禁用Ctrl+V复制粘贴键原创 2024-03-13 19:38:15 · 702 阅读 · 0 评论 -
使用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 · 755 阅读 · 0 评论 -
开源节点框架STNodeEditor使用
节点,一般都为树形Tree结构,如TreeNode,XmlNode。树形结构有其关键属性Parent【父节点】,Children【子节点】LinkedListNode为链表线性结构,有其关键属性Next【下一个】,Previous【上一个】,可以用其进行工作流workFlow设计右键 项目 STNodeDemo,管理NuGet程序包输入关键字STNodeEditor安装完成后。原创 2024-02-04 17:41:15 · 2040 阅读 · 1 评论 -
C#实现坐标系转换
部分类文件FormCoordinateTrans.Designer.cs。新建关键的坐标转换类CoordinateTransHelper。已知坐标系的向量线段AB,旋转指定角度后平移到达坐标A'B'文件FormCoordinateTrans.cs。获取旋转角度以及新的其他坐标转换。新建坐标结构Coord。原创 2024-02-04 12:11:21 · 1171 阅读 · 0 评论 -
Sqlite真空命令VACUUM
之前在项目中使用了sqlite数据库,当日志变大时,执行CRUD操作就会变慢后来尝试删除7天前的记录进行优化发现sqlite文件的大小就没有变化,delete命令只是逻辑删除,所在的文件的字节码仍然还在,优化效果仍不明显。使用真空命令VACUUM即可压缩文件原创 2024-01-24 11:23:43 · 1176 阅读 · 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 · 1028 阅读 · 0 评论 -
关于String.Format混合$符号格式化引发的问题
之前一个老项目是用string.Format()进行格式化的,.net 4.5之后的版本 引入 $"字符串" 格式化标识符,一劳永逸解决问题的方式:格式化字符串时要么只使用string.Format,要么使用$格式化符。两者尽量不要混合一起使用。原创 2023-12-13 09:58:51 · 122 阅读 · 0 评论 -
C#使用随机数模拟英雄联盟S13瑞士轮比赛
C#使用随机数模拟英雄联盟S13瑞士轮比赛,仿真窗体应用程序LOL_S13Demo。原创 2023-11-05 16:31:14 · 957 阅读 · 1 评论 -
获取中文词组的汉语拼音首字母拼接
(我们发现:女娲石,应为NWS,但显示为NWD,因我们只考虑第一个读音石:dan)文件:FormChinesePinyinMapping.Designer.cs。我们可以采用字符字典法,穷举出所有的汉字【暂只考虑简体中文】文件:FormChinesePinyinMapping.cs。比如中文词组获取其汉语拼音首字母并拼接起来,添加对NPOI操作Excel的支持库。比如{'中',"Z"},输出功率3:SCGL3。{'国',"G"},将其设置为 始终复制。原创 2023-09-17 20:59:48 · 293 阅读 · 0 评论 -
打印所有声母,韵母组合汉语拼音并显示到表格中
需求:现在我们做一个窗体应用程序,显示出所有的汉语拼音,以及声母与韵母合并在一起是否可组成有效拼接,如果无效,就按×标识,点击某一个单元格可以显示是否可组成拼接,如果可组成拼音,就显示出示例汉字。原创 2023-08-25 18:29:45 · 1156 阅读 · 0 评论 -
C#获取DataTable的前N行数据然后按指定字段排序
获取DataTable的前N行数据然后按指定字段排序可以使用以下三种代码:第一种:使用Linq第二种:使用默认视图的Sort属性第三种:使用循环迭代原创 2023-08-24 14:29:35 · 2188 阅读 · 0 评论 -
C#导入数据使用Task异步处理耗时任务
C#多线程中,我们可以使用async和await来异步处理耗时任务。现在我们打开一个Excel表格,将Excel表格的每一行数据进行处理,并存储到数据库中。原创 2023-08-10 19:35:37 · 757 阅读 · 0 评论 -
C#调用百度翻译API自动将中文转化为英文,按行转换
【代码】C#调用百度翻译API自动将中文转化为英文,按行转换。原创 2023-08-08 20:12:08 · 2575 阅读 · 0 评论 -
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 · 3801 阅读 · 0 评论 -
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 · 2384 阅读 · 0 评论 -
C#使用Chart进行统计,切换不同的图表类型
每隔5秒钟自动刷新OK和NG数量,可以切换使用柱状图、环形、线性图、饼图等显示。ChartDemo,将默认的Form1,重命名为FormChart,原创 2023-07-14 17:48:43 · 1483 阅读 · 2 评论 -
WPF中集合ObservableCollection<T>的使用
WPF 提供ObservableCollection类,该类是实现INotifyCollectionChanged接口的数据收集的内置实现。public class ObservableCollection : Collection, INotifyCollectionChanged, INotifyPropertyChanged原创 2023-05-24 17:41:14 · 1703 阅读 · 0 评论 -
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 · 3566 阅读 · 0 评论 -
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 · 2770 阅读 · 0 评论 -
C#使用RabbitMQ.Client进行消息队列通信
VS2019中新建控制台应用程序RabbitMQDemo【.net framework 4.6.1】,右键项目RabbitMQDemo,原创 2023-05-10 09:38:28 · 1077 阅读 · 0 评论 -
欧姆龙PLC的CIP协议报文
/-------------------------------------------------------CommandSpecificData 指令指定数据 4byte。//-------------------------------------------------------CommandSpecificData 指令指定数据 4byte。0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,//发送方描述默认0 8byte。原创 2023-04-03 22:13:14 · 5563 阅读 · 0 评论 -
工作流(3):工作流流转框架代码
工作流流转框架代码工作流的启动,签收或校验,送出,退回,撤回,办结等流程处理。原创 2023-03-28 14:41:22 · 443 阅读 · 0 评论 -
工作流(2):工作流流程图设计
新建windows应用程序WorkFlowDemo,将默认的Form1重命名为FormWorkFlow,引入开源ORM框架SqlSugar以及log4net,以及操作mysql的库MySql.Data.dll,然后添加对System.Configuration的引用。使用Winform的GDI进行流程图绘制,实现环节流转。增加操作mysql的类文件SugarDao,新建枚举类ArrowDirection。RawSql.cs源程序如下。增加操作类RawSql,原创 2023-03-21 18:01:11 · 728 阅读 · 0 评论 -
C#天干地支生肖-甲子(60年)循环打印
我们测试打印天干地支的甲子(60年)循环。原创 2023-03-09 16:06:43 · 346 阅读 · 0 评论 -
自定义IT女神节日历与农历
今天是女神节,来一篇日历显示当前日期与农历,以及显示特殊节日。原创 2023-03-08 20:36:34 · 310 阅读 · 2 评论 -
C#格式化小数N与F的区别
格式化N3的结果字符串为:12,345.679。整数部分从个位开始每三位(千倍)自动增加逗号格式化F3的结果字符串为:12345.679。没有逗号。原创 2023-03-04 22:10:40 · 390 阅读 · 0 评论 -
C#使用Spire.OCR框架识别图片中的字母,数字,文字等
OCR文字识别是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,然后用字符识别方法将形状翻译成计算机文字的过程;即,对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。注意托管Spire.OCR.dll需要自动引用如上六个框架包,因此Spire.OCR.dll和六个框架包必须在同一路径下。选择目标平台为X64。原创 2023-01-18 17:41:25 · 11628 阅读 · 16 评论 -
C#使用迷宫地图来模拟新冠疫情的传播速度(三),使用隔离单元格
【代码】C#使用迷宫地图来模拟新冠疫情的传播速度(三),使用隔离单元格。原创 2023-01-13 17:27:25 · 164 阅读 · 0 评论 -
C#使用迷宫地图来模拟新冠疫情的传播速度(二)
上一篇我们设置 病毒源为 中心单元格,手动点击新冠传播【Spread】按钮来模拟新冠传播速度,这次我们只点击Start按钮【绑定事件btnInit_Click】,新冠病毒源是网格中的随机一个单元格。随机病毒源,每隔2秒自动扩散。原创 2023-01-06 12:15:26 · 201 阅读 · 0 评论 -
C#使用迷宫地图来模拟新冠疫情的传播速度(一)
按钮Init绑定Click事件btnInit_Click,按钮Spread绑定Click事件btnSpread_Click。一个感染源 可以传播附近相邻的8个网格【类似于扫雷】,假如每个感染源一天只能感染相邻的8个网格。初始所有单元格都是绿色的,初始当前红色的单元格可以感染8个最近的单元格【九宫格】,为窗体绑定Paint事件FormNovelVirusSpread_Paint,国家开始发布疫情放开政策,本人于2022-12-21开始感染并发高烧。,问:一个感染源多久可以感染所有N*M网格。原创 2023-01-04 14:56:37 · 422 阅读 · 2 评论 -
C#使用随机数模拟器来模拟世界杯排名(三)
更新CountryUtil.cs,增加SoccerGame方法,用于获取两个参赛世界杯国家胜利的一方。这一篇我们使用随机数以及胜率模拟器 决赛出 世界杯冠军、亚军。我们在主界面 新增按钮【刷新匹配模拟器】和【继续匹配比赛】富文本控件RichTextBox:rtxtDisplay。按钮:【开始比赛 直到 决出冠军】btnStart。按钮:【刷新重新随机分配】btnRefresh。上一篇我们使用随机数匹配比赛的世界杯国家,面板Panel:pnlWorldCup。(忽略设计器自动生成的代码)原创 2022-12-19 11:50:42 · 533 阅读 · 0 评论 -
未能加载文件或程序集XXX.dll,程序启动失败的解决方案
之前在VS2019上下载一个项目,运行后就报错,弹出未能加载文件或程序集XXX.dll,我们选中该dll,右键,属性,发现 该dll被锁定点击“解决锁定”即可解决。后到微软官方查看 loadFromRemoteSources配置。原创 2022-12-14 12:12:12 · 12492 阅读 · 0 评论 -
C#使用随机数模拟器来模拟世界杯排名(二)
接上一篇:C#使用随机数模拟器来模拟世界杯排名(一)我们使用洗牌随机数算法来匹配世界杯对战国家:新建洗牌随机数相关类RandomUtil用于随机世界杯参赛国家的列表索引并分配:洗牌算法的时间复杂度是 O(N)原创 2022-12-13 21:43:24 · 921 阅读 · 0 评论