
C#编程
文章平均质量分 50
C# 编程语法基础
手搓人生
品味当下,观自在
展开
-
C# 中对 Task 中的异常进行捕获
C# 中捕获 Task 异常的方法:一是 try-catch 与 await,简洁直观;二是 ContinueWith 检查 task.IsFaulted 及 task.Exception.InnerExceptions;三是 Task.WhenAll 或 Task.WhenAny 时 try-catch;四是 TaskScheduler.UnobservedTaskException,但不推荐。推荐 try-catch 与 await 组合,更安全。原创 2025-01-14 09:13:01 · 576 阅读 · 0 评论 -
【基础】c# FileStream 对象不会自动释放
FileStream对象不会自动释放资源。为避免资源泄露,应使用using语句或显式调用Dispose方法来释放文件流资源。原创 2024-12-06 17:43:54 · 573 阅读 · 0 评论 -
c# 子类继承父类接口问题
在C#中,子类并不直接“继承”父类继承的接口,但子类的确会继承父类对接口的实现(如果父类实现了该接口)原创 2024-09-25 15:47:21 · 634 阅读 · 0 评论 -
避坑——Matlab c# 联合编程——Native
主要是MWStructArray,MWArray等数据交换对象有两套,你不指定,就有可能用串,后果就是无法转换和报错,怎么查都不对,as,强转都无用。相同的库,Matlab生成供.net调用的库时会有两套,也就是Native(本地),两套库各有优缺点,这这里就不说了,可以翻看网上其他博文。原创 2024-03-04 16:09:35 · 342 阅读 · 0 评论 -
ScottPlot图标控件的使用
ScottPlot是一个免费的开源交互式绘图库,适用于 .NET。它具有适用于 Windows 窗体、WPF、Avalonia 和 Eto 窗体的用户控件,它甚至可以在服务器环境或控制台应用程序中将绘图生成为图像文件。ScottPlot 面向 .NET Standard 2.0,因此它可以在 .NET Framework 和 .NET Core 应用程序中使用。ScottPlot 的 API 模仿Python 的Matplotlib,大多数绘图都可以用一行代码创建原创 2023-08-30 11:20:24 · 1205 阅读 · 0 评论 -
c# 并行计算(大量循环处理的场景下)
并行指有多个CPU资源同时处理多个线程,不存在竞争的概念,可以大量节省运行时间。原创 2023-05-18 23:45:00 · 618 阅读 · 0 评论 -
WPF 判断窗体是否关闭
PresentationSource.FromVisual函数判断源是否为空。原创 2023-03-01 09:50:40 · 1245 阅读 · 0 评论 -
Windous注册表+c#操作
将会分享Windous注册表的基础知识及C# 读写注册表的方法。原创 2023-01-15 01:00:00 · 1150 阅读 · 0 评论 -
Modbus 串口 C#
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。Modbus允许多个 (大约240个) 设备连接在同一个网络上进行通信,举个例子,一个测量温度和湿度的装置,并且将结果发送给计算机。原创 2023-01-05 23:45:00 · 1935 阅读 · 4 评论 -
vs 生成前事件 生成后事件命令
为了提高编译生成后的事件效率,不需要手动的拷贝到固定目录。可以在项目->属性中设备生成后事件。输入相应的命令行,即可。原创 2023-01-03 23:00:00 · 2666 阅读 · 0 评论 -
c# 服务
Microsoft Windows 服务(过去称为 NT 服务)允许用户创建可在其自身的 Windows 会话中长时间运行的可执行应用程序。 这些服务可在计算机启动时自动启动,可以暂停和重启,并且不显示任何用户界面。原创 2022-12-25 12:30:05 · 1466 阅读 · 0 评论 -
不是为了写注释而写注释
注释是指解释字句的文字,也指用文字解释字句。可以是文字符号图片等多种形式。尤其是国内,这种现象不仅是在小公司小团队中司空见惯,就算在大公司,以及大团队中的开源项目里,也是屡见不鲜。原创 2022-12-16 23:45:00 · 103 阅读 · 0 评论 -
C# 调用 Matlab dll
C# 对Matlab dll的调用原创 2022-11-08 19:14:58 · 282 阅读 · 0 评论 -
c# 数据压缩与解压
【代码】c# 数据压缩与解压。原创 2022-11-03 11:33:42 · 394 阅读 · 0 评论 -
C# 可空类型
可空类型在日常的项目中还是会经常使用到,针对每个逻辑层的方法对于传入参数和返回参数而言,都可能存在使用可空类型来进行处理和转化。原创 2022-07-19 22:45:00 · 390 阅读 · 0 评论 -
C# 多线程
c# 线程、线程池、任务 用法 差别对比原创 2022-07-19 09:21:47 · 303 阅读 · 0 评论 -
WPF Chart图标的使用
大数据的展示,Chart图表的方式一目了然。目标:可显示实现列表对象数据,可切换不同列表显示后台数据对象构建对象绑定效果展示不同形式觉得有用就请关注赞收藏吧!!!工控之路,不迷茫......原创 2022-06-16 06:30:00 · 726 阅读 · 0 评论 -
.NET Framework和.NET Core/.NET5/.NET6
升级高版本VS后,VS对.NET Core的支持更加好了,如下图使用的vs版本同一套东西2种版本。用.NET Framework新建项目如下图用.NET6新建项目如下图.NET Framework 的公共语言运行时(Common Language Runtime 简称CLR),.NETCore 重新设计了 CoreCLR,以及一个被称为 CoreFX 的基础类库( Base Class Library 简称BCL)。现在 .NET 框架的命名混乱到令人发指。所以他们决定合并.NET Core原创 2022-06-15 23:45:00 · 3934 阅读 · 0 评论 -
c# ListView加载大量数据优化 传统方法&虚拟模式
背景:项目上需要展示5w条测试结果数据,传统方法private void btnLoadAllDate_Click(object sender, EventArgs e) { DateTime startTime = DateTime.Now; lvAllData.Items.Clear(); int index = 0; foreach (var item in Global.Recipe原创 2022-05-29 17:23:06 · 2752 阅读 · 0 评论 -
c# 可空类型的妙用
c#基础语法可空值原创 2022-04-29 11:14:46 · 269 阅读 · 0 评论 -
WPF MVVM基础
WPF MVVM基础原创 2021-06-30 13:12:05 · 163 阅读 · 0 评论 -
c# 键盘钩子
using System;using System.Collections.Generic;using System.Diagnostics;using System.Runtime.InteropServices;using System.Text;namespace KeyboardHookPro{ public class ScanerHook { public delegate void ScanerDelegate(ScanerCodes codes)原创 2021-06-24 16:47:40 · 1822 阅读 · 0 评论 -
工业级轻量日志处理log
做设备上位机4年,大多数时候使用的都是NLog、Log4Net这些开源框架直接写,在无数的项目的跌倒而又再次跌倒,为啥这么说,日志打印稍微卡一下无关紧要,这是每次跌倒后说服自己的。文章目录一、解决思路二、C#实现1.消费者(核心代码)2.生产者总结一、解决思路采用生产消费模式,利用线程安全的队列进行缓冲(比Lock锁快)。二、C#实现1.消费者(核心代码)每秒1000次检验队列是否有产品,确保数据丢失小于1ms /// <summary> ///原创 2020-10-26 21:28:07 · 282 阅读 · 0 评论 -
C# 反射 Assembly再次学习
Assembly回炉再造文章目录Assembly回炉再造前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言从接触c#到现在已经是第三个年头了,OOP(面向对象编程)编程的基本方法算是已经可以使用,但在工作中发现,只是单纯的OOP,还是有很多的问题,程序还是不够精妙,至此发现,Assembly的回炉有必要进行一下了。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建原创 2020-10-23 19:57:39 · 151 阅读 · 0 评论 -
时隔一年重新学习Attribute
自定义Attribute定义/******************************************************* 命名空间: AtrributDemo** 文 件 名:DeviceAttribute** 内容简述:** 版 本:V1.0** 创 建 人:Byron** 创建日期:2020/10/21 15:51:43** 修改记录:日期 版本 修改人 修改内容 *****************************原创 2020-10-21 20:21:24 · 127 阅读 · 0 评论 -
C#中重写(override)和覆盖(new)的区别,简单区分
写了很久的c# ,但对一些细枝末节也没有深纠,override和New就是#region 重写public class C1{ public virtual string GetName() { return "byronLoong"; }}public class C2 : C1{ public override string GetName() { return "龙龙"; }原创 2020-05-11 09:38:14 · 271 阅读 · 0 评论 -
SDK编写经验总结一
顶层接口只开放对用户意义函数函数尽量少,能一个函数完成绝对不两个函数函数名简单易懂次顶层接口接口隔离函数功能隔离可组合形式多原创 2020-04-30 17:32:28 · 905 阅读 · 0 评论 -
C# AutoResetEvent简明教程
上例程背景:张三李四互砍,你一刀,我一刀,公平互砍using System;using System.Threading;namespace ConsoleApp1{ internal class Program { private static void Main(string[] args) { AutoRe...原创 2020-04-29 11:18:16 · 490 阅读 · 0 评论 -
XML极简整理
来源:https://www.runoob.com/xml/xml-tree.html关系根->元素元素中包含属性,文本,元素心得体会可以达到XML进行数据处理保存,可以将对象进行简化,并可以周而复始,生生不息的保存。C#操作创建xml对象XmlDocument doc = new XmlDocument();加载文档doc.Load(strm);获取根元素Xml...原创 2020-04-22 13:28:36 · 273 阅读 · 0 评论 -
设计模式之策略模式(工业控制)
写这篇文章的原因是:对于工业自动化上位机的编写,策略类在硬件调用的应用是相当多的。网上很多关于策略模式的教程,简单的实现可以自行参考;https://blog.youkuaiyun.com/alexhu2010q/article/details/102501561这里就不做赘述了。简单实现步骤switch封装(原始状态)case的抽象类提取case子类的建立多态实例的调用(实现成功状态)说好...原创 2020-04-01 10:47:50 · 601 阅读 · 0 评论 -
软件图形用户界面设计
##最近被同事吐槽界面丑,仔细的研究了下界面设计问题帮助用户节省脑力,减少学习成本。(1)保持界面风格的一致性:看到图标可以看图知思(2)减少用户的记忆负担:按照正常人惯性思维去做界面交互(3)软件在用户的控制下使用:可撤销,可推回,误操作有防呆,有提示。简单的说就是把软件做的和使用手机App一样,不需要说明书,则完善,美观,简约,易操作...原创 2019-12-05 10:27:14 · 2001 阅读 · 0 评论 -
C#基础总汇
基础数据类型整形有8位byte,16位short,32位int,64位long 浮点型有32位float,64位double,128位decimal堆:动态分配, 栈:编译时就分配好& 不管前面的条件是否正确,后面都执行 && 前面条件正确时,才执行后面,不正确时,就不执行,就效率而言,这个更好(短路预算符)优先顺序 自算位 关逻三赋类型...原创 2018-04-16 23:40:28 · 211 阅读 · 0 评论 -
Invoke BeginInvoke EndInvoked的使用 简单的线程同步
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace _11._3._1{ class Program { public delegate int FooDelegate(string原创 2017-05-29 23:30:39 · 322 阅读 · 0 评论 -
组件的使用
在团队开发的过程中,我们可以把一个项目拆分成无数个工作组件,分配到每一个开发小组。然后把它开发成一个个的组件,再通过一定的装配把它装配起来。编写一个软件就如同盖一栋楼房,是通过拼装组件的方式一步一步的完善系统的功能。首先,建立一个类库,生成成功后保存。 namespace TiGaoBan { public class TGB { public static原创 2017-06-20 13:02:10 · 260 阅读 · 0 评论 -
通用串口类
public class SerialClass { SerialPort _serialPort = null; //定义委托 public delegate void SerialPortDataReceiveEventArgs(object sender, SerialDataReceivedEventArgs e, byte[] bits)原创 2017-06-28 14:18:11 · 1391 阅读 · 0 评论 -
sizeof() typeof()
sizeof可以获取某类型在内存中所占的字节数。 对于所有其他类型(包括 struct),sizeof 运算符只能在不安全代码块中使用。虽然可以使用 SizeOf 方法,但该方法返回的值和 sizeof 返回的值并不总是相同的。Marshal.SizeOf 在已封送处理类型后返回大小,而 sizeof 返回公共语言运行库分配的大小(包括任何空白)。 表达式 结果 sizeof(sbyte) 1转载 2017-07-05 15:45:55 · 818 阅读 · 0 评论 -
c#延时程序
有效避免sleep带来的线程休眠问题(如界面假死)public static void Delay(int milliSecond) { int start = Environment.TickCount; while (Math.Abs(Environment.TickCount - start) < milliSecond)原创 2017-07-03 19:06:22 · 1124 阅读 · 0 评论 -
常用杂记 一
打开websyetem.diagnostics.process.stat("http://……);//开启一个进程获取所在进程idthread.CurrentThed.ManagedThreadld递归重复调用函数自身实现循环。迭代函数内部某某段代码实现循环,参与循环的变量同时参与运算。准确测量时间StopWatch se=new StopWatch();sw.stat();sw.stop();原创 2017-05-22 18:31:08 · 265 阅读 · 0 评论 -
C# 面向对象特性 封装 继承 多态
封装将方法细节隐藏,只留名字。Public:所有对象都可以访问; Private:对象本身在对象内部可以访问; Protected:只有该类对象及其子类对象可以访问 Internal:同一个程序集的对象可以访问; Protected internal:一个程序集内的对象,或者该类对象及其子类可以访问; 以上是常用的封装的特性修饰符;其作用主要是决定外部能否对这个封装(对象)进行操作;继承将原创 2017-05-19 18:42:43 · 542 阅读 · 0 评论 -
c# if elseif else的判断
c#网页编码判断private static string GetCharSet(string contentType) { Console.WriteLine("contentType:" + contentType); if (contentType == null || contentType == "")原创 2017-05-17 09:55:00 · 7578 阅读 · 0 评论