C#基本原理
沐细雨如春风
不要叫我程序猿,请叫我攻城狮。。
展开
-
2021-06-01 如何去除数列中的重复项?
今天想到公司有道面试题说的是去除数列中的重复项,常用的方法是通过循环剔除重复内容.但是在博客上看到了一种更加简洁高效的方式:利用哈希数HashSet 非cong原创 2021-06-02 09:49:20 · 600 阅读 · 0 评论 -
2021-05-21 关于保存图像和屏幕截图记录
一、关于保存图像和屏幕截图概述:上午调试一个可以截屏(截取软件界面)并保存到指定文件夹的Demo功能,截图功能比较顺利,在图像保存的时候出了点问题 代码如下: // 存储 Image string filePath = Path.Combine(Application.StartupPath,"image1"); Directory.GetParent(filePath).Create(); img..原创 2021-05-21 17:10:03 · 382 阅读 · 1 评论 -
2021-05-15 C# 中Json数据格式的使用及注意事项
C# 中Json数据格式的使用及注意事项一 、前言 工作中经常需要将检测数据或者测评数据以Json格式提供给MES或者记入文档中,由于之前对这种常用数据记录格式使用较少,常出现拼写及使用出错,下面将结合经验 分析并记录如下。二、示例Json json样例如下:{ "Id": "1234568", "ServerName": "SCAN_COMPBARCD_SUBMIT", "WorkStation": "T30256", "MachineId": "hzdz-...原创 2021-05-15 15:09:20 · 418 阅读 · 0 评论 -
2021-05-15 如何在 C# 工程项目中添加 C++的DLL ,并应用其DLL 提供的方法:
如何在 C# 工程项目中添加 C++的DLL ,并应用其DLL 提供的方法:本例根据 向C# 工程中添加C++的DLL 以实现 PC端和工业PLC进行ModbusTcp协议下的通信一、收集相关文件从PLC提供的Modbus通讯工程包中找到一下内容: 静态库文件(.lib) 头文件(.h) 动态库文件(.dll) StandardModbusApi.lib ModbusTcpAPI.lib ...原创 2021-05-15 11:57:36 · 1203 阅读 · 0 评论 -
MessageBox中文乱码记录
使用MessageBox测试输出:system.Windows.MessageBox.Show("工站:" + fileContents[0] + " 轨道:" + fileContents[1] + " 报警:" + fileContents[2]);但手动制作的TXT文档,输出的MessageBox的中文信息,会出现乱码。但是实际应用中 代码生成的TXT文档显示中文信息就是正常的。...原创 2021-03-25 15:30:04 · 2172 阅读 · 0 评论 -
TCP通讯握手交互
学习目标:TCP通讯交互中有客户提出握手交互的需求,即在通讯开始阶段首选通过客户端发送握手信息给服务器,在指定时间内收到服务器回复信息说明通讯正常,否则报警提醒。学习内容:1、使用计时监控是否到达指定时间2、使用定时器执行定时监控任务3、筛选服务器返回信息,停止相关任务任务实现:在Socket通讯类中添加 握手交互方法HandshakeConnect,方法被调用后会启用定时器和计时器 Stopwatchpublic void HandshakeConnect() ...原创 2021-01-23 17:07:07 · 423 阅读 · 1 评论 -
跨线程调用界面信息
一:问题描述 在C# 程序中跨线程调用UI界面信息通常会报:C# :“调用线程无法访问此对象,因为另一个线程拥有该对象。” 的错误例如:public override void OnProcessImageData(IInspectionWindowContext context, IImageData imageData) { lock (locker) { ...原创 2021-01-14 17:47:33 · 207 阅读 · 3 评论 -
枚举状态
关于C# 枚举状态的使用: [Flags] public enum CompleteProcessStatus1 : ushort { ClearBoardNormal = 1 << 0, BoardToPos = 1 << 1, BoardInNormal = 1 << 2, BoardOutHighSpeed = 1 << 3, BoardOut原创 2021-01-11 19:52:03 · 626 阅读 · 0 评论 -
快捷属性封装
快捷属性封装using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;namespace FilePath{ class Program { #region field 私有字段 内部使用 变量名称前面加_ private int _myVar;...原创 2020-06-03 13:41:30 · 158 阅读 · 0 评论 -
通过BitmapImage 和JpegBitmapEncoder 将BMP图像转换成JPEG格式
一:通过BitmapImage 和JpegBitmapEncoder 将BMP图像转换成JPEG格式核心代码如下:class Program { static void Main(string[] args) { string BMPFiles = "11.bmp"; BitmapImage bitImage = new BitmapImage(new Uri(BMPFiles,UriKind.Absolute)...原创 2020-05-26 09:48:09 · 1727 阅读 · 0 评论 -
C# 错误: 集合已修改,可能无法执行枚举操作
一:问题描述在如下代码中: foreach (var barcodeContent in block.Barcodes) { if (barcodeContent.Name==barcode.Name) { ...原创 2020-05-14 15:47:21 · 6573 阅读 · 1 评论 -
List<T> 赋值时 的深拷贝和浅拷贝
在代码 List<string> MACBarcodeArr = new List<string>(); List<string> AllMACBarcodeArr = new List<string>();foreach (Block b in inspection.Blocks.OrderBy(w => w.Number)) { AllM...原创 2020-05-13 14:42:12 · 896 阅读 · 0 评论 -
关于C#中的委托的部分总结
首先要理解委托是什么?(这里单独讨论委托本身,并不牵扯事件。当然可以把事件当做一种特殊类型的委托,以后会详细总结)1,:从数据结构上来讲,委托是用户自定义的一种数据类型,只不过这种数据类型代表一类方法;2:从设计模式上来讲,委托(类) 是对方法(对象)的抽象;委托想实现的功能就是将方法作为另一个方法的参数进行传递;委托既然是一个类,一种数据类型,那么它存储的是什么类型的数据(我们就可以像对待普通的...原创 2018-04-29 21:46:31 · 167 阅读 · 0 评论