C#使用struct直接转换下位机数据

编写上位机与下位机通信的时候,涉及到协议的转换,比较多会使用到二进制。传统的方法,是将数据整体获取到byte数组中,然后逐字节对数据进行解析。这样操作工作量比较大,对于较长数据段更容易计算位置出错。 其实,对于下位机给出通讯的数据结构的情况下,可以直接使用C#的struct将数据直接转换。需要使用到 ... »

分别使用 Python 和 Math.Net 调用优化算法

1. Rosenbrock 函数 在数学最优化中,Rosenbrock 函数是一个用来测试最优化算法性能的非凸函数,由Howard Harry Rosenbrock 在 1960 年提出 。也称为 Rosenbrock 山谷或 Rosenbrock 香蕉函数,也简称为香蕉函数。 Rosenbrock ... »

.NET探索平台条件编译

前言 今天偶然机会,翻了一下大学期间的书籍《C程序设计》,好吧,当我翻着翻着,翻到了符号常量(#define指令)中,是啊,这是一个预处理器指令,记得在Magicodes.IE中针对平台选择不同的库,哈哈,这是一个典型的根据平台进行条件处理,好吧, 根据这些内容,让我感觉在今天,我需要对#defin ... »

.NET斗鱼直播弹幕客户端(2021)

.NET斗鱼直播弹幕客户端(2021) 离之前更新的两篇《.NET斗鱼直播弹幕客户端》已经有一段时间,近期有许多客户向我反馈刚好有这方面的需求,但之前的代码不能用了——但网上许多流传的Node.js、Python脚本却可以用,这岂能忍?(刚好我终于找回了我的发布密码 »

[工作札记]02: .Net Winform控件TreeView最简递归绑定方法

前言:Treeview控件是我们在WinForm、WebForm开发中经常使用的控件,需要从数据库动态加载数据,然后递归绑定每一个节点;同样,递归的思路在其他程序中也经常运用,包括.Net MVC等。 通过网上查找,绑定TreeView控件的方法非常多,我经过自己思考并且结合工作经验,总结了一个最简 ... »

[C#.NET 拾遗补漏]14:使用结构体实现共用体

在 C 和 C# 编程语言中,结构体(Struct)是值类型数据结构,它使得一个单一变量可以存储多种类型的相关数据。在 C 语言中还有一种和结构体非常类似的语法,叫共用体(Union),有时也被直译为联合或者联合体。而在 C# 中并没有共用体这样一个定义,本文将介绍如何使用 C# 实现 C 语言中的 ... »

WPF DataGrid与ListView性能对比与场景选择

开门见山的说 性能对比: 在Demo中,DataGrid与ListView默认开启虚拟化(可以理解为动态渲染,类似懒加载只渲染屏幕可以看见的地方) DataGrid渲染10列50行随机字符280ms ListView渲染10列50行随机字符80ms 场景选择: ListView只生成需要展示的数据类 ... »

[C#] 老古董的 Microsoft Chart Controls 也可以进行数据预测

我要先声明,这篇文章介绍到的内容虽说不是不能用,但玩乐成分居多,大家看看就好,不要太认真。 1. Microsoft Chart Controls 中的 FinancialFormula 在上一篇文章 使用 Math.Net 进行曲线拟合和数据预测 中,我介绍了如何使用 Math.Net ,这篇文章 ... »

ASP.NET Core 上传文件到共享文件夹

参考资料:ASP.NET 上传文件到共享文件夹 创建共享文件夹参考资料:https://www.cnblogs.com/dansediao/p/5712657.html 一、配置上传文件相关参数并读取参数 1.配置appsettings.json { "FileUploadInfo": { "Upl ... »

性能超四倍的高性能.NET二进制序列化库

二进制序列化在.NET中有很多使用场景,如我们使用分布式缓存时,通常将缓存对象序列化为二进制数据进行缓存,在ASP.NET中,很多中间件(如认证等)也都是用了二进制序列化。 在.NET中我们通常使用System.Runtime.Serialization.Formatters库中的BinaryFor ... »

[C#] 使用 Excel 和 Math.Net 进行曲线拟合和数据预测

以前在工作中遇到了一个数据错误的问题,顺便写下 用 Math.Net 解决的思路。 1. 错误的数据 上图是同一组探测器在同一天采集到的 19 次数据,总体来说重复性不错,但很明显最后 8 个探测器出了问题,导致采集到的数据在最后八个点一片混乱。即使把其中看起来最好的一组数据拿出来使用多项式拟合,也 ... »

内存泄漏问题分析之非托管资源泄漏

在某次巡查生产环境监控数据的时候,发现某个程序的内存占用偏高(大于500M)。对于这个程序的作用需要简单交代一下,这个程序是用做通讯服务程序,通过Socket与IOT设备进行通讯。因为了解这个程序的使用场景,所以对于该程序的内存占用偏高产生了怀疑。该程序服务的设备并不多,但是占用了几百兆的内存,很明 ... »

使用swagger上传文件

经常使用swagger,可以通过设置[ProducesResponseType]标记接口的返回信息;swagger也能通过接口的参数列表,自动获得发送的数据结构信息。 不过有一个例外,就是上传文件的时候,设置了[Consumes]的内容为multi-part/form-data,但是swagger并 ... »

C#脚本引擎CS-Script

最近想要在程序中嵌入一个C#脚本引擎,在.NET Framework时代用过一个叫做CS-Script的东西,感觉还是不错,发现现在也支持.NET Core了,试着嵌入一下。 比较 要说能够运行C#脚本的解决方案,有Roslyn和Mono,与他们相比,CS-Script能够提供的封装更为高级,它底层 ... »