- 博客(127)
- 资源 (43)
- 问答 (3)
- 收藏
- 关注

原创 WinForm | C# 界面弹出消息通知栏 (仿Win10系统通知栏)
消息通知栏(Notification)在桌面开发中有非常重要的作用,它是一种全局的、强制的交互方式。它可以在活动窗体之外的区域向用户发出醒目的消息提示,允许用户在指引下通过简易的操作完成交互。ApeForms中提供的消息通知栏是在系统通知栏之外单独实现的一套通知功能,开发者可以自定义通知栏的内容、添加自定义的选项并设置动作回调、设置消失时间等。
2023-03-24 00:27:10
2731
1

原创 BytesIO | C# 超简洁的TCP服务端开发(完整源码+视频教程)
本章将继续利用BytesIO开发TCP的服务端,简洁明了依然是主旋律,我们要在三十行代码内除了实现一个TCP服务端以外,使其支持聊天室(消息转发)、连接数限制、心跳超时检测等功能。现在,一起跟着视频敲一敲吧!【女朋友都能学会】C# TCP服务端Visual Studio已经帮我们完成了大部分工作,真正需要我们手敲的代码不超过30行......
2022-05-31 23:52:48
2224
7

原创 ApeForms | WinForm窗体UI美化库(Metro扁平风格)演示与安装
WinForm界面美化|控件库|扁平化|WPF风格ApeForms是一套基于WinForm框架免费的UI库,提供了丰富的Metro风格控件、针对WinForm开发中常见类型的扩展、通用Dialog/Notification的模板等。
2022-05-22 00:33:15
8106
9
原创 C# | 使用AutoResetEvent和ManualResetEvent进行线程同步和通信
在多线程编程中,AutoResetEvent 和 ManualResetEvent 是两个常用的同步原语。它们用于线程间的通信和协调,以确保线程按照特定的顺序执行。本篇博客将介绍这两种同步原语的概念、用法和区别。
2023-12-04 17:27:28
25
原创 使用MD5当做文件的唯一标识,这样安全么?
MD5(Message Digest Algorithm 5)是一种常用的哈希函数,用于将任意长度的数据映射为固定长度的哈希值。它广泛应用于数据完整性验证、密码存储等领域。
2023-12-01 01:33:46
230
原创 XmlRPC协议详解(一款不支持原生异步请求的协议)
XmlRPC是一种基于XML(eXtensible Markup Language)的远程过程调用协议。它使用简单的文本格式进行通信,将请求和响应数据封装在XML中,广泛应用于Web服务和分布式系统中。
2023-11-27 17:22:14
233
原创 JsonRPC协议详解(协议介绍、请求示例、响应示例)
JsonRPC是一种基于JSON(JavaScript Object Notation)的轻量级远程过程调用协议。与其他RPC协议相比,JsonRPC使用简单的文本格式进行通信,易于阅读和编写,广泛应用于Web服务和分布式系统中。XML-RPC:使用XML作为通信格式的RPC协议。SOAP:基于XML的通信协议,支持多种传输协议。gRPC:由Google开发的高性能、开源的RPC框架,支持多种编程语言和传输协议。
2023-11-25 23:59:26
319
原创 Modbus故障码速查手册(故障码含义、分析原因、详细解读)
本篇文章旨在为读者提供一个方便快速查阅的资源,以便快速获取有关Modbus通信中可能出现的故障码的信息。通过仔细研究这些故障码,读者可以更有效地诊断和解决通信问题,减少故障排查的时间。
2023-11-23 18:40:30
262
原创 C# | Chaikin算法 —— 计算折线对应的平滑曲线坐标点
本文将介绍一种计算折线对应的平滑曲线坐标点的算法。该算法使用Chaikin曲线平滑处理的方法,通过控制张力因子和迭代次数来调整曲线的平滑程度和精度。通过对原始点集合进行切割和插值操作,得到平滑的曲线坐标点集合。实验结果表明,该算法能够有效地平滑折线,并且具有较高的精度和可控性。
2023-10-28 18:03:33
408
原创 C# | Linq基本功 —— 必学的必熟的10个方法
Linq(Language Integrated Query)是C#语言中的一种查询语言,它提供了一种统一的方式来查询和操作各种数据源,如集合、数据库、XML等。Linq的出现使得开发者能够以一种更简洁、更直观的方式来处理数据,提高了代码的可读性和可维护性。本文介绍了C# Linq中一些作为基本的扩展方法的使用。掌握这些方法可以帮助开发者更加高效地处理数据。不夸张的说作为一个.NET工程师,不熟练掌握Linq的使用便是不合格。
2023-10-24 18:05:08
177
原创 C# | DBSCAN聚类算法实现 —— 对直角坐标系中临近点的点进行聚类
聚类算法是一种通过对数据对象进行分组,使得同一组内的对象彼此相似,而不同组之间的对象差异较大的算法。聚类算法的目标是发现数据中的内在结构,并根据对象之间的相似性进行分类。DBSCAN算法是一种基于密度的聚类算法,其核心思想是将高密度区域划分为簇,并将低密度区域视为噪声。DBSCAN算法不需要预先指定聚类数量,能够自动发现不同形状和大小的簇,并且对数据分布的要求较低。
2023-08-31 01:13:24
644
原创 C# | [极坐标] 与 [平面直角系坐标] 的相互转换
极坐标和平面直角系坐标是常见的坐标系统,它们在不同的应用场景中都有重要的作用。而在计算机图形学、物理模拟和机器人控制等领域,我们经常需要在极坐标和平面直角系坐标之间进行转换。极坐标使用极径和极角来表示点的位置,而平面直角系坐标使用x和y坐标表示点的位置。本文将介绍如何进行这两种坐标系统的相互转换,并提供了使用C#编写的代码示例。
2023-07-21 14:10:06
544
原创 面经 | 日志库基础知识
学习日志库的实现可以展示你对底层原理和技术细节的理解,这对于面试中展示你的技术深度和广度非常重要。因为实现一个日志库需要考虑到性能、可扩展性、容错性等方面的问题,在一定程度上可以展示你的系统设计能力。此外,通过学习如何实现日志库这一过程可以帮助你深入理解日志管理的原理和技术,包括日志记录、存储、查询,熟悉底层的文件IO、并发控制、网络传输等技术,提升你的工程能力。可以根据需要定义日志的格式,包括时间、级别、线程ID、进程ID、文件名等信息的显示方式。
2023-07-10 14:52:48
241
原创 Xamarin.Android | 界面跳转到手机自带的自启动管理界面,引导用户将APP加入自启动
很多 Android 应用需要在后台运行,以便提供实时通知、定时任务等服务,但是部分 Android 系统通过限制应用程序后台运行,以降低电池消耗和提高系统性能。这就可能导致应用程序运行不稳定,通知延迟,定时任务无法正常执行等问题。因此,在某些情况下,将应用程序添加到自启动白名单中可能会提高应用程序的运行稳定性和响应速度。
2023-07-10 00:14:58
1394
原创 C# | 二分查找算法的实现
二分查找法一种在有序数组中查找目标值的算法。划重点——“有序”,与需要遍历整个数组的查询算法不同,二分查找法通过将数组分成两部分来快速定位目标值所在的位置。二分查找法有什么用呢?它的主要好处在于它的效率很高。因为它能够通过每次排除一半的元素来快速缩小搜索范围,因此在大型数据集上使用二分查找法可以显著提高查找速度。比较一下二分查找法和其他常见的查找算法的效率。相比于顺序查找法,它的平均时间复杂度更低,可以达到O(log n)。
2023-06-04 23:58:17
575
1
原创 MySQL | Windows服务器部署ZIP免安装版MySQL8.0+数据库笔记
此时会提示你输入root的密码,请把刚才保存的密码输入进去。现在完成好找合适的目录解压即可,但注意路径不要带特殊字符。关于如何添加环境变量这个例子太多了,不会的话查一下就好。将mysql解压路径下的bin文件夹加入环境变量。选择适合当前计算机的版本,点击链接下载并安装。在你加压的文件夹中新建一个文本文件并命名为。如果在安装服务的过程中出现以下错误图示,接下来会跳转到这个页面,直接点击。,就会提示安装成功了。
2023-06-04 23:38:17
628
原创 C# | 【完全开源】手机号码归属地查询,一秒内百万次查询
这个开源项目是一个.NET库,可以通过手机号码获取号码归属地信息,包括运营商、国家、省份、城市、邮政编码、区号等信息。该库加载了一个包含46万条数据的“中国手机号归属地信息”数据集,并实现了高速查询。在我的7年老笔记本上执行一百万次查询耗时不足一秒。
2023-06-04 22:37:40
588
原创 C# | 使用Memory<T>高效地读写内存数据
Memory是C# 7.2版本中引入的一种新类型,可以更加高效地读写内存数据。本文将介绍它的用途以及如何使用它来优化代码。PS:由于微软的文档实在是太简约,故写此篇。Memory是什么?它是一种可变大小、可读写的内存块,可以安全地暴露给用户代码进行操作。为什么要使用Memory?使用它有许多好处。最主要的是善用它可以提高代码的性能。因为Memory是可变的,所以我们可以直接在内存中操作数据,而不需要进行额外的拷贝操作。
2023-05-30 23:53:42
1148
1
原创 C# | 凸包算法之Andrew‘s,获取围绕一组点的凸多边形的轮廓点
这篇关于凸包算法的文章,本文使用C#和Andrew’s算法来实现凸包算法。什么是凸包呢?凸包是一个包围一组点的凸多边形。凸多边形是指多边形中的每个内角都小于180度的多边形。凸包算法有什么用呢?凸包算法的作用是找到这个凸多边形,并且使用最少的点来绘制出它的轮廓。凸包算法在计算机图形学、计算几何和机器学习等领域中有着广泛的应用。
2023-05-28 22:56:16
1047
1
原创 C# | 凸包算法之Jarvis,寻找一组点的边界/轮廓
这篇关于凸包算法的文章,本文使用C#和Jarvis算法来实现凸包算法。什么是凸包呢?凸包是一个包围一组点的凸多边形。凸多边形是指多边形中的每个内角都小于180度的多边形。凸包算法有什么用呢?凸包算法的作用是找到这个凸多边形,并且使用最少的点来绘制出它的轮廓。凸包算法在计算机图形学、计算几何和机器学习等领域中有着广泛的应用。
2023-05-28 22:39:45
831
原创 C# | 凸包算法之Graham,快速找到一组点最外侧的凸多边形
这篇关于凸包算法的文章,本文使用C#和Graham算法来实现凸包算法。什么是凸包呢?凸包是一个包围一组点的凸多边形。凸多边形是指多边形中的每个内角都小于180度的多边形。凸包算法有什么用呢?凸包算法的作用是找到这个凸多边形,并且使用最少的点来绘制出它的轮廓。凸包算法在计算机图形学、计算几何和机器学习等领域中有着广泛的应用。
2023-05-28 22:28:35
760
原创 C# | 线性回归算法的实现,只需采集少量数据点,即可拟合整个数据集
什么是线性回归呢?简单来说,线性回归是一种用于建立两个变量之间线性关系的统计方法。在我们的软件开发中,线性回归可以应用于数据分析、预测和优化等领域。什么情况下会用到线性回归呢?举个例子,假设你需要采集0-100之间的十个值,并使用这十个值来拟合出所有的值。这样做的好处是,我们可以通过少量的数据点来得到一个可以描述整个数据集的模型。
2023-05-28 21:34:58
1673
原创 C# | KMeans聚类算法的实现,轻松将数据点分组成具有相似特征的簇
本章分享一下如何使用C#实现KMeans算法。在讲解代码前先清晰两个小问题:什么是聚类?聚类是将数据点根据其相似性分组的过程,它有很多的应用场景,比如:图像分割、文本分类、推荐系统等等。在这些应用场景里面我们需要将数据点分成多个簇,每个簇内的数据点具有相似的特征,以便于我们能够更简单的处理数据。什么是KMeans?KMeans算法是一种常用的聚类算法,它可以将数据点分组成具有相似特征的簇。
2023-05-21 22:54:49
588
原创 C# | [二进制字符串] 与 [字节数组] 互相转换,一行代码就搞定! - CodePlus系列
开发中有时需要将二进制数据转换为字符串或相反。虽然.NET提供了一些用于二进制数据操作的类库,但是它们的使用有时候会比较繁琐。是一个.NET扩展库,它提供了很多实用的扩展方法,可以帮助我们更方便地进行二进制数据操作。在本文中,我们将介绍如何使用扩展库实现二进制字符串和字节数组的快速互相转换。
2023-05-19 14:51:20
998
原创 C# | 内存池
在上一篇文章中,我们介绍了对象池的概念和实现方式。对象池通过重复利用对象,避免了频繁地创建和销毁对象,提高了系统的性能和稳定性。今天我们继续上一章的内容,当我们在某些场景下需要频繁地分配和释放内存的场景,我们可以继续开发一个内存池。内存池是一种管理内存分配和释放的机制。它通过在程序启动时预先分配一定数量的内存块,然后在需要使用内存时,从内存池中分配一块空闲内存,而不是每次都通过系统调用申请新的内存。当内存不再需要时,将其归还到内存池中,而不是直接释放内存。
2023-05-15 23:50:03
630
原创 C# | 对象池
当我们开发一个系统或者应用程序时,我们通常需要创建很多的对象,这些对象可能是线程、内存、数据库连接、文件句柄等等。在某些情况下,我们需要频繁地创建和销毁这些对象,这样会导致系统的性能下降和资源的浪费。这时,我们就可以使用对象池来管理这些对象,让它们可以被重复使用,从而提高程序的运行效率。那么,什么是对象池呢?简单来说,对象池就是预先创建一定数量的对象,并将它们存储在一个池中,当需要使用对象时,从对象池中获取一个对象,并在使用完毕后将其放回池中,以便可以多次重复使用。
2023-05-14 23:59:43
1157
1
原创 NetMQ | 发布订阅时使用含通配符的Topic
今天我来介绍一下NetMQ发布订阅时如何使用含通配符的Topic,让我们能够更加灵活地订阅消息。什么是Topic?在NetMQ中,Topic是由一系列标识符组成的字符串,标识符之间用“/”分隔。例如:“home/living-room/lights”。这个Topic可以用来表示家庭中客厅灯的开关状态。
2023-04-28 11:36:44
532
原创 NetMQ | 实现TCP的发布订阅模式
NetMQ是一个轻量级、可扩展的消息队列库,支持多种消息传递模式和传输协议,包括TCP、InProc、IPC、Pipes等。本文我们将介绍如何使用NetMQ实现TCP的发布订阅模式。发布订阅模式是一种常用的消息传递模式,其中发布者向订阅者发送消息,订阅者可以选择订阅自己感兴趣的消息。在NetMQ中,TCP的发布订阅模式是通过使用和实现的。
2023-04-27 01:05:46
835
原创 C# | 上位机开发新手指南(十一)压缩算法
在上位机开发中,我们经常会遇到需要传输大量数据的情况,这时候一个高效的压缩算法就可以大大减少传输所需的时间和带宽。本文将为大家介绍压缩算法,希望能够帮助到大家。
2023-04-21 10:27:34
333
1
原创 C# | 上位机开发新手指南(十)加密算法——ECC
在上一篇文章中,我们介绍了RSA算法,本篇文章我们将继续探讨另一种非对称加密算法——ECC。ECC全称是“Elliptic Curve Cryptography”,是一种基于椭圆曲线数学理论的加密算法。它的优势在于密钥短、加密速度快、安全性高等特点,使其广泛的应用与移动设备、物联网等算力资源受限的领域中。本篇文章将为大家深入介绍ECC算法的原理、应用以及实现方法,帮助读者更好地理解和使用ECC算法。
2023-04-19 01:33:43
915
1
原创 C#调试与测试 | Assert(断言)
今天我要和大家聊聊C#调试和测试中的一种神器——断言(Assert)。如果你还不知道什么是断言,或者不知道怎么使用断言来调试你的C#程序,那么请听我慢慢道来。什么是Assert呢?断言是一种用于在程序运行时检查条件是否满足的工具。如果条件不满足,断言就会抛出一个异常,从而帮助我们快速定位问题并进行调试。在C#中,可以使用Debug.Assert方法来实现断言,该方法接受一个布尔表达式作为参数,如果该表达式的值为false,就会抛出一个AssertionFailedException异常。
2023-04-14 02:04:22
1177
原创 C#调试与测试 | DebuggerDisplay使用技巧
当你在开发一个大型的应用程序时,调试是一个不可避免的任务。调试器是你的好朋友,但是有时候它并不能直接给你所需的信息。。关于AttributeAttribute 是 C# 中一种特殊的类,它可以在编译时为类、方法、属性等元素添加元数据。在运行时,这些元数据可以被反射机制使用。它是一种很强大的元编程工具,可以让你在运行时获取更多的信息。DebuggerDisplay可以让你在调试器中显示你自己定义的字符串,代替默认的显示方式。换句话说,它可以让你在调试器中更加方便地查看对象的信息。
2023-04-14 00:45:32
647
原创 C# | 二进制字符串(“101010101”)、字节数组(byte[])互相转换
当我们在计算机中处理数据时,经常需要将数据从一种格式转换为另一种格式。而本文的将二进制字符串转换为字节数组听起来很稀松平常但实际又不是那么常见的特殊的转换方式。二进制字符串是由 0 和 1 组成的字符串,比如:“0111010010101000”。字节数组常用于读取和写入二进制文件、网络通信等。
2023-04-12 01:46:10
1384
原创 C# | 导出DataGridView中的数据到Excel、CSV、TXT
导出中的数据到是开发中经常遇到的需求。而将DataGridView中的数据先转换为DataTable格式,再进行导出,是一种常见的实现方式。本文将介绍如何将DataGridView中的数据转换为DataTable格式,并提供将DataTable转换为Excel、CSV、TXT三种格式的例子。将DataGridView中的数据转换为DataTable格式,有助于我们更方便地对数据进行处理和操作。
2023-04-11 00:06:54
2563
1
原创 C# | System.IO.Pipelines 很酷的读写数据流方式!
文本分享一种新的读写数据流方式 —— System.IO.Pipelines。这个东西在 .NET Core 2.1 中出现了,它能够帮助你更高效地处理数据流。
2023-04-10 00:16:50
991
原创 C# | 上位机开发新手指南(九)加密算法——RSA
RSA算法使用公钥和私钥两个不同的密钥,公钥用于加密数据,私钥用于解密数据。公钥可以公开,任何人都可以使用,而私钥只有密钥持有人可以访问。
2023-04-09 03:06:01
663
原创 C# | 上位机开发新手指南(八)加密算法——AES
AES——这是在加密算法中相当重要的一种加密方式!虽然这个世界上已经存在了非对称加密算法(比如RSA、ECC等),但是在对称加密算法中,AES的地位依然相当重要。与非对称加密算法不同,对称加密算法使用的是相同的密钥对数据进行加密和解密,因此其加密和解密速度更快,而且更加高效。而在对称加密算法中,AES是目前最安全、最可靠的加密算法之一,其加密强度和运行效率都非常高。因此,无论是在个人计算机、移动设备,还是在服务器和云计算等领域,AES都被广泛应用于数据的加密和解密过程中。
2023-04-08 01:41:49
410
2
原创 C# | 上位机开发新手指南(七)加密算法
加密算法是信息安全领域中的重要技术之一,可以保护数据在传输、存储和处理过程中的安全性。学习加密算法可以帮助我们更好地理解和应用其他相关技术。例如,数字证书、数字签名、安全协议等都与加密算法密切相关,掌握加密算法可以为我们理解和应用这些技术提供帮助。
2023-04-07 01:46:18
887
原创 C# | 上位机开发新手指南(六)摘要算法
你知道摘要算法么?它在保障数据安全方面非常有用!它能够将任意长度的数据转换成固定长度的消息摘要,从而确保数据的完整性和可靠性。比如说,我们下载软件的时候,就可以用摘要算法来检验软件是否被篡改,保障我们的电脑安全。那这个算法的工作原理是怎样的呢?大致就是通过一系列复杂的计算,将原始数据转换为一个固定长度的摘要信息。而且无论输入的数据大小,输出的摘要信息长度都是一样的。那么摘要算法有什么用处呢?比如数字签名,确保数据的来源和内容没有被篡改。还有密码学等领域的应用,可以说是非常厉害了!
2023-04-05 01:50:57
591
原创 C# | 上位机开发新手指南(五)校验算法——CRC
当我们在进行数据传输时,可能会因为信道噪声、干扰等因素导致数据出现错误,从而影响传输的可靠性和准确性。此时,我们需要一种方法来检测数据是否出现错误,并尽可能快速地发现和纠正错误。CRC(Cyclic Redundancy Check)校验算法就是一种常用的数据校验方法,它通过对数据进行处理生成校验码,从而实现对数据的完整性和准确性进行验证。使用CRC校验的意义在于能够提高数据传输的可靠性,降低数据传输错误率,确保数据的完整性和准确性。在各个领域中,如通信、网络、存储等,CRC校验都得到了广泛的应用。
2023-04-04 14:43:31
1126
2
C# - DBSCAN聚类算法实现 - 对直角坐标系中临近点的点进行聚类
2023-08-31
C#手机号码归属地离线查询工具源码 (一百万次查询不到一秒)
2023-06-02
Github客户端(Android端APK)2023年4月20日版本
2023-04-20
C#源码 WinForm多线程批量下载器
2022-10-28
【C#源码】Win10 BLE 蓝牙调试工具(扫描设备、服务列表、获取特征值、收发数据、订阅通知)
2022-06-13
【C#源码】简明优雅的TCP服务端、TCP客户端、串口客户端
2022-05-31
【C#源码】TCP+串口通信的调试工具 (源码+教学视频)
2022-05-29
C#-WinForm窗体仿Android桌面(左右翻页)
2022-05-26
将任意WinForm控件裁剪成圆形控件/圆角控件
2022-05-24
【BytesIO】C#串口通信客户端源代码
2022-04-15
VisualMicro_Arduino_VS扩展插件+补丁Visual.Micro.Processing.Sketch.dll
2022-02-19
【BleAssistant-v1.1.0】BLE蓝牙调试助手,Win10桌面工具,exe
2022-02-18
n2n_v3_linux_arm64(aarch64)_v2.9.0_r873_all_by_heiye.zip
2021-07-24
n2n_v3_linux_arm64eb(aarch64eb)_v2.9.0_r873_all_by_heiye.zip
2021-07-24
n2n_v3_linux_armeb_v2.9.0_r873_all_by_heiye.zip
2021-07-24
n2n_v3_linux_mips64_v2.9.0_r873_all_by_heiye.zip
2021-07-24
n2n_v3_linux_mips64el_v2.9.0_r873_all_by_heiye.zip
2021-07-24
n2n_v3_linux_mipsel_v2.9.0_r873_all_by_heiye.zip
2021-07-24
n2n_v3_linux_x64_v2.9.0_r873_static_by_heiye.zip
2021-07-24
n2n_v3_linux_x86_v2.9.0_r873_static_by_heiye.zip
2021-07-24
n2n_v1_windows_x64_v1.3.2_r124_static_by_Tim.zip
2021-07-24
n2n_v1_windows_x86_v1.3.2_r124_static_by_Tim.zip
2021-07-24
VisualMicro21.01.06.0_Visual.Micro.Processing.Sketch.dll.zip
2021-02-03
BLE蓝牙调试助手,Win10桌面工具,exe
2020-09-25
ESP32-EspressifSystems.pdf
2020-07-21
NAU88C10-nuvoton.pdf
2020-07-21
博世BMI270 传感器API 官方例程.zip
2020-06-24
博世BMA456 传感器API 官方例程.zip
2020-06-24
BMI055 官方例程及文档.zip
2020-06-24
C#源码 - 读取Excel文件 - ExcelRead.rar
2020-01-09
正则表达式 - 如何取字符串中的电话号码?
2019-03-22
C++ std::function的用法
2017-11-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人