自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(243)
  • 资源 (92)
  • 收藏
  • 关注

原创 C#使用MindFusion.Diagramming框架绘制流程图(2):流程图示例

摘要:本文介绍了如何使用MindFusion.Diagramming框架在C#中创建流程图应用程序。主要内容包括:1)新建Windows窗体项目并通过NuGet安装框架;2)添加DiagramView控件和Diagram组件;3)设置基本属性如网格显示、节点连接限制;4)实现节点创建、编辑和双击事件处理;5)添加"开始"和"结束"节点作为流程图基础;6)开发节点文本编辑窗口;7)实现获取所有节点和连接信息的按钮功能。文章通过代码示例详细演示了框架的基本使用方法,包括节

2025-06-07 16:47:20 607

原创 C#使用MindFusion.Diagramming框架绘制流程图(1):基础类型

摘要:MindFusion.Diagramming是一款基于C#的图表绘制框架,通过MindFusion.Diagramming.dll库实现。该框架构建于GDI+之上,支持创建流程图、网络图等多种图表类型。核心组件包括Diagram(图表容器)、DiagramNode(节点基类)、DiagramLink(连线)和各类具体节点(如ShapeNode几何节点、SvgNode矢量节点、TableNode表格节点等)。框架提供丰富的属性控制,如节点输入输出连接、形状样式、文本编辑等,并支持XML序列化、拖放操作和

2025-06-06 18:20:13 883

原创 C#对集合进行分组IGroupingout TKey, out TElement>

C#中的Linq提供了GroupBy()方法,用于根据指定的键选择器函数对集合元素进行分组,返回一个IEnumerable<IGrouping<TKey, TSource>>对象。IGrouping<TKey, TElement>接口表示具有公共键的对象集合,其中TKey为键的类型,TElement

2025-05-22 20:21:20 344

原创 Python进阶(3):函数(接上篇)

两个下划线开始,两个下划线结束的属性代表特殊指定属性函数名.__name__ 打印函数名函数名.__defaults__ 打印默认值元组匿名函数(lambda)是指没有名字的函数,应用在需要一个函数但是又不想费神去命名这个函数的场合。通常情况下,这样的函数只使用一次。兰姆达lambda表达式与C#的兰姆达lambda表达式基本上一致,只是在语法上有所变化(C#使用"=>",python使用lambda关键字)

2025-04-12 15:27:16 604

原创 Python进阶(2):函数

在调用函数时,指定的实际参数的数量必须与形式参数的数量一致,否则将抛出 TypeError 异常,提示缺少必要的位置参数。在调用函数时,指定的实际参数的位置必须与形式参数的位置一致,否则将产生以下两种结果。

2025-04-10 19:53:04 883

原创 Python进阶(1):正则表达式

在实现时,可以使用re模块提供的方法(如 search()、match()、findall()等进行字符串处理,也可以先使用re 模块的 compile()方法将模式字符串转换为正则表达式对象,然后再使用该正则表达式对象的相关方法来操作字符串。search()方法用于在整个字符串中搜索第一个匹配的值,如果在起始位置匹配成功,则返回 Match对象,否则返回 None。如果匹配成功,则返回包含匹配结构的列表,否则返回空列表。count:可选参数,表示模式匹配后替换的最大次数,默认值为0,表示替换所有的匹配。

2025-04-10 09:44:45 1120

原创 Python入门(9):Python字符串

count()count()方法用于检索指定字符串在另一个字符串中出现的次数。如果检索的字符串不存在,则返回否则返回出现的次数。find()该方法用于检索是否包含指定的子字符串。如果检索的字符串不存在,则返回-1,否则返回首次出现该子字符串时的索引。rfind()[从右往左查找]该方法用于检索是否包含指定的子字符串。如果检索的字符串不存在,则返回-1,否则返回首次出现该子字符串时的索引。index()index()方法与find()方法类似,也是用于检索是否包含指定的子字符串。只不过

2025-04-08 11:18:48 730

原创 Python入门(8):Python序列结构-集合

集合最常用的操作就是进行交集、并集、差集和对称差集运算。进行交集运算时使用“&”符号;进行并集运算时使用“|”符号:进行差集运算时使用“-”符号,进行对称差集运算时使用“^”符号。交集:获取两个集合的相同元素并集:合并两个集合,重复元素的只保留一个差集A-B:集合A中的元素,删除掉在B中的元素差集B-A:集合B中的元素,删除掉在A中的元素对称差集:并集集合中移除所有重复元素[并集-交集]

2025-04-03 16:48:24 278

原创 Python入门(7):Python序列结构-字典

定义字典时,每个元素都包含两个部分"键”和“值”,并且在“键”和“值”之间使用冒号分隔,相邻两个元素使用逗号分隔,所有元素放在一个大括号“{}”中。使用del命令来删除字典。

2025-04-01 23:56:24 556

原创 Python入门(6):Python序列结构-元组

对于已经创建的元组,不再使用时,可以使用 del语句将其删除元组是不可变序列,所以我们不能对它的单个元素值进行修改,但是元组也不是完全不能修改。我们可以对元组进行重新赋值。在进行元组连接时,连接的内容必须都是元组。不能将元组和字符串或者列表进行连接。在进行元组连接时,如果要连接的元组只有一个元素,一定不要忘记后面的逗号元组推导式print("返回生成器对象:",randomNumber)

2025-04-01 16:21:50 408

原创 Python入门(5):Python序列结构-列表

切片类似于C#中的结构ArraySegment[部分数组]使用列表对象的 remove()方法删除元素时,如果指定的元素不存在,将出现不存在该元素异常,将其优化为先判断。

2025-03-11 14:01:52 996

原创 Python入门(4):Python流程控制

python和C++一样,if 表达式只要为True,非零,非空,都是有效的语法执行,在判断if条件时,C#做的非常好 ,C#中必须 if(bool类型表达式) ,不能出现 if (1) 的情况,而在python中 if 1 if(a=1) if(a==1)都是有效语法.如果表达式的值为假,就跳过“语句块”,继续执行后面的语句,这种形式的if语句相当于汉语里的“如果……end:用于指定计数的结束值(但不包括该值,如range(7),则得到的值为 0~6,不包括 7),不能省略。

2025-03-08 11:09:32 848

原创 Python入门(3):Python运算符与表达式

Python 中的位运算符有按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移位(<<)和右移位(>>)运算符。Python 的运算符的运算规则是:优先级高的运算先执行,优先级低的运算后执行,同一优先级的操作按照从左到右的顺序进行。使用时,可以直接把基本赋值运算符“=”右边的值赋给左边的变量,也可以进行某些运算后再赋值给左边的变量。所谓运算符的优先级,是指在应用中哪一个运算符先计算,哪一个后计算,与数学的四则运算应遵循的“先乘除,后加减”是一个道理。比较运算符,也称为关系运算符。

2025-03-05 11:33:28 328

原创 Python入门(2):Python数据类型与转换

Python 是动态类型的语言(也称为弱类型语言),不需要像 Java 或者 C语言一样在使用变量前必须先声明变量的类型。虽然 Python 不需要先声明变量的类型,但有时仍然需要用到类型转换。

2025-03-04 19:22:28 239

原创 Python入门(1):Python语言基础

Python简介Python 是一种跨平台的、开源的、免费的、解释型的高级编程语言。近几年发展势头迅猛,在2018年3月的TIOBE编程语言排行榜中已经晋升到第4名,而在IEEE Spectrum 发布的 2017 年度编程语言排行榜中,Python 位居第一。另外,Python的应用领域非常广泛,如 Web 编程、图形处理、黑客编程、大数据处理、网络爬虫和科学计算等,Python 都可以实现。Python区分大小写Python功能。

2025-03-04 16:35:09 829

原创 使用Pycharm创建第一个Python程序

在C#、Java、C++等语言的语法中规定,必须以分号作为语句结束的标识。Python也支持分号,同样用于一条语句的结束标识。但在Python中分号的作用已经不像C、Java中那么重要了,Python中的分号可以省略,主要通过换行来识别语句的结束。Pycharm集成开发工具[IDE]

2025-03-01 11:59:44 436

原创 C#使用文件读写操作实现仙剑五前传称号存档修改

手把手教学仙剑五前传 称号存档修改器首先找到 Pal5Q所在目录的save\global.sav 文件,这是一个只有488字节的文件,这里存放称号对应的编号ID,以及是否已获得该称号,1为已获取称号,0为未获取称号[称号:是否获取]这是一个键值对称号的编号ID是一个Int32数字,使用C#的方法BitConverter.GetBytes(编号ID)即可获取4个字节是否获取也是一个Int32数字,称号描述在一个明文的xml文件[title.xml]中 路径为 \Config\Data\title.

2025-02-15 15:18:22 660

原创 C#快速排序QuickSort将递归算法修改为堆栈Stack非递归方式

实现方法:我们可以发现:对于递归Recursive代码更新为堆栈Stack循环代码,仅需三个步骤即可实现:①将所有参数封装为元组Tuple或者一个自定义类如递归方法void QuickSortRecursive(int[] arr, int left, int right)就定义一个元组 Tuple<int[], int, int> 作为整体元素[参数集合]传递②定义一个泛型Stack,每个元素都是一个元组③将原来的使用递归方法调用自身的使用修改为推入堆栈中[Push]

2025-02-10 16:15:21 381

原创 C#树图显示目录下所有文件以及文件大小(使用Stack元组来替换递归)

C#树图显示目录下所有文件以及文件大小(使用Stack元组来替换递归)思路:我们注意到递归段 BindTreeView(treeNode.Nodes, directories[i]); 两个递归参数(TreeNodeCollection nodes, string directoryPath) 都需要传入新的递归参数因此,将递归更新为Stack时,两个参数需要同时传递(即成对传递),我们可以使用元组Tuple来同时传递.

2025-02-10 13:47:24 382

原创 C#中深度解析BinaryFormatter序列化生成的二进制文件

如果将二进制文件读取出来,然后篡改指定的字节码,生成新的二进制文件,然后重新读取,结果就会发现数据被篡改了.很多单机游戏的存档文件修改就是这么干的.这也是不提倡使用BinaryFormatter类进行序列化的原因,可能被劫持篡改二进制文件,因此在最新的net 5.0中会被标记为不安全的和过时的原因。

2025-02-08 17:36:56 600

原创 C#树图显示目录下所有文件以及文件大小

而一个目录(文件夹)System.IO.Directory是没有FileSize或者Length属性的.目录(文件夹)的大小是指该目录下所有子目录和所有文件大小的累加,按字节为单位.我们在打开某个目录属性时,可以查看到有大小信息.如下图。C#树图显示目录下所有文件以及文件大小。

2025-01-21 18:11:32 472

原创 C#使用WMI获取控制面板中安装的所有程序列表

WMI全称Windows Management Instrumentation,Windows Management Instrumentation是Windows中用于提供共同的界面和对象模式以便访问有关操作系统、设备、应用程序和服务的管理信息。如果此服务被终止,多数基于 Windows 的软件将无法正常运行。如果此服务被禁用,任何依赖它的服务将无法启动。WMI提供公用接口及对象模型,以存取有关操作系统、装置、应用程序及服务的管理信息。

2025-01-20 17:50:59 510

原创 C#中颜色的秘密

颜色Color是一个调色板,所有颜色都是由透明度Alpha,红Red,绿Green,蓝Blue按不同比例调色混合而成,如果不考虑透明度Alpha,颜色共有256*256*256=16777216种Color=ARGBA,R,G,B都为byte型[8位],因此可以用整体的32个整数[Int32]来表示一种颜色

2025-01-14 09:51:57 780

原创 C#使用OpenTK绘制3D可拖动旋转图形三棱锥

【代码】C#使用OpenTK绘制3D可拖动旋转图形三棱锥。我们绘制一个三棱锥,三棱锥需要四个顶点Vertex

2025-01-11 16:26:21 842

原创 C#使用OpenTK绘制一个着色矩形

OpenGL 是一种跨平台的图形渲染 API,用于创建 2D 和 3D 图形。OpenTK的目标是提供一个一致且高效的框架,让开发者能够专注于构建他们的游戏和图形应用程序,而无需担心底层硬件和操作系统之间的差异。因此,可以说 OpenTK 是 OpenGL 的一个封装库,它封装了 OpenGL 的底层实现,提供了更加易用的 C# 接口。总的来说,OpenTK是一个功能强大的跨平台游戏开发库,为C#开发者提供了便捷的开发接口和工具,使得开发者能够更加专注于游戏和图形应用程序的构建,提高了开发效率和便捷性。

2025-01-11 15:17:00 961

原创 C#使用MVC框架创建WebApi服务接口

它定义了在管道中使用中间件来处理请求和相关响应的标准方法。WebAPI应用程序和中间件可以与基于 OWIN 的应用程序、服务器和中间件进行互操作。使用 Topshelf 可以非常方便的将一个 C# 控制台程序部署成为一个 Windows Service, 使用它可以很方便的构建跨平台服务寄主,而在调试时直接以控制台的形式运行即可,非常方便。Topshelf 是一个开源的跨平台的宿主服务框架,支持 Windows 和 Mono,只需要几行代码就可以构建一个很方便使用的服务宿主。

2025-01-07 16:49:08 1494

原创 常见速度单位换算关系行列式

常见速度术语,速度单位有马赫,节,码,迈,千米/时(公里/时),米/秒.我们显示出速度换算表格

2025-01-02 16:20:57 1580

原创 使用DataGridView来实现的工步跳转

新建窗体应用程序ShowImageColumnDemo,将默认的Form1修改为FormShowImageColumn。工步跳转与绑定

2024-12-31 15:32:49 318 2

原创 打印自然常数E

自然常数,符号e,为数学中一个常数,是一个无限不循环小数,且为超越数,其值约为2.718281828459045。它是自然对数函数的底数。

2024-10-16 11:41:08 488 1

原创 C#使用TCP-S7协议读写西门子PLC(五)-测试程序

西门子PLC-S7协议测试读写基础数据类型、字符串、Unicode字符串等

2024-09-11 20:01:17 1285

原创 C#使用TCP-S7协议读写西门子PLC(四)

这里我们进行读写基础数据类型、读取DB块的字符串、宽字符串、以及一系列连续数组。新建部分类文件SiemensS7ProtocolUtil.Integrated.cs主要方法读取任意连续字节数据,任意多个Byte读取--每次最多读取200个字节,如果超过200,自动分多次读取public OperateResult ReadSerialData(PlcRegisterCategory plcRegisterCategory, ushort offsetAddress, ushort

2024-09-11 19:22:02 1897

原创 C#使用TCP-S7协议读写西门子PLC(三)

这里我们进行封装读写西门子PLC的S7协议命令以及连接西门子PLC并两次握手新建部分类文件SiemensS7ProtocolUtil.ReadWrite.cs主要方法:连接西门子PLC并发送两次握手。两次握手成功后,才真正连接到PLCpublic OperateResult ConnectPlcAndHandshake(SiemensPlcCategory siemensPlcCategory, IPEndPoint endPoint, int timeout = 3000)生成一个写入字节数据

2024-09-11 18:48:10 2252

原创 C#使用TCP-S7协议读写西门子PLC(二)

这里,我们开始进行读写西门子PLC,西门子PLC作为Socket通信的服务端【TCP-Server】在读写PLC之前,我们先进行Socket-Client程序编写,用于连接TCP服务端【也就是西门子PLC】,为了方便进行,我们使用部分类partial的方式【当然使用父子继承类亦可】,新建类文件SiemensS7ProtocolUtil.csSiemensS7ProtocolUtil类是部分类,需使用关键字partial

2024-09-11 17:36:23 1337

原创 C#使用TCP-S7协议读写西门子PLC(一)

西门子PLC的S7协议是西门子公司在ModbusTcp协议的基础上自定义的一种协议,仅支持西门子PLC,S7协议本质仍然属于TCP协议的一种自定义具体实现

2024-09-10 15:38:33 1319

原创 C#使用MQTT(二):MQTT客户端

为了一个应用程序可以作为客户端和服务端,我们在Program.cs增加切换开关。文件FormMqttClient.Designer.cs。窗体FormMqttClient程序代码如下:客户端程序。新建Windows窗体FormMqttClient。窗体FormMqttClient设计器相关代码如下。文件FormMqttClient.cs。选择作为MQTT服务端和MQTT客户端。上一篇我们初步设计了MQTT服务端。这里我们设计客户端,接上一篇。运行客户端与服务端通信。

2024-09-04 16:57:45 2614 3

原创 C#使用MQTT(一):MQTT服务端

的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。我们使用MQTTnet.dll,程序集 MQTTnet, Version=4.3.6.1152。低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息。它工作在 TCP/IP协议族上,是为。管理Nuget包,输入关键字Mqtt。

2024-09-04 16:05:09 5268 1

原创 C#使用GDI对一个图像Image进行任意角度旋转

新建winform应用程序RotatedRectangleDemo,将默认的Form1重命名为FormRotatedImage。文件 FormRotatedImage.Designer.cs。文件FormRotatedImage.cs。基于上篇的基础上,对图片进行任意角度旋转。找一下测试图片 云无月.jpg。上一篇我们对矩形进行旋转。

2024-08-14 12:14:42 668 1

原创 区域与语言CultureInfo

这些信息包括区域性的名称、书写系统、使用的日历、字符串的排序顺序以及对日期和数字的格式化设置。使用LCID是为了标识不同地区和语言的代码。它是Locale Identifier(区域设置标识符)的缩写,用于表示不同地区和语言的组合。语言ID是指一种语言,而子语言ID指的是地区或区域设置。在Windows操作系统中,LCID被广泛用于识别和设置地区设置,如日期和时间格式、货币单位、数字格式、键盘布局等。LCID,全称 Locale Identifier,区域设置标识符,用于确定特定地区和语言的区域设置。

2024-08-09 16:27:30 519

原创 Profinet与以太网Ethernet的区别

PLC可编程逻辑控制器 基本上都是应用于工业,采用的通讯基本上都是profinet而各种网络通讯,比如浏览网页,视频,各种网络游戏,都是采用Ethernet通信综上所述,Profinet和以太网在技术规范、应用领域、通信速度和实时性、系统兼容性和互操作性以及数据处理和网络管理等方面存在显著差异。在选择网络通信技术时,需要根据具体的应用场景和需求进行选择。对于工业自动化领域来说,Profinet以其高度的实时性、兼容性和数据处理能力成为了一种理想的选择。

2024-07-24 17:09:48 3022

原创 解析西门子PLC的String和WString

西门子PLC有两种字符串类型,String与WStringString 用于存放英文数字标点符号等ASCII字符,每个字符占用一个字节WString宽字符串用于存放中文、英文、数字等Unicode字符,每个字符占用两个字节WString[50]为例:西门子PLC字符串类型 WString[50],占用104个字节(偏移量),第一第二个字节是最大长度,就是50,第三第四个字节是实际长度10,第五个字节之后就是Unicode码,PLC解析逻辑为找到第三第四个字节的长度actualLength,然后查找

2024-07-24 15:56:19 5631

AutoGetFileTypeDemo.rar

自动获取真实文件类型

2022-01-06

InovancePlcDemo.rar

汇川PLC的Modbus测试Demo

2021-09-08

OmronFinsDemo.rar

OmronFins TCP通信,使用C#

2021-11-16

Base64ConsoleDemo.rar

Console.WriteLine($"比较 手动转化 与 调用系统函数转化 Base64结果:【{base64Custom == base64Auto}】"); Console.WriteLine($"比较 手动还原 与 调用系统函数还原 Base64结果:【{srcCustom == srcAuto}】");

2021-12-11

MazeDemoConsole.rar

迷宫控制台

2021-12-15

TrainPathBookingDemo.zip

多人抢火车票模拟器

2021-12-26

modbus协议报文分析_汇川PLC.docx

Modebus报文详解 0x03 读取多个类型寄存器 0x10写多个连续寄存器

2021-09-04

Base64EncoderDemo.rar

Base64属于简单加密算法的一种。类似于凯撒密码【它是一种替换加密的技术】 Base64字符串由65个字符组成, 大写字母A~Z, 小写字母a~z, 数字0~9,以及三个特殊字符+、/、= 【=“等号”用于补充字符,使Base64字符串长度变成4的倍数】

2021-12-10

MazeTest.rar

迷宫

2021-12-15

BIndDataDemo.zip

DataGridView数据绑定 刷新,多行数据

2021-11-07

MultiThreadMySqlDemo.rar

读写mysql数据库测试

2021-10-10

WorkOrderDemo.rar

工单混料生产方案

2021-09-12

软件打包安装工具.rar

软件打包安装工具

2021-10-15

TextEditorDemo.zip

ICSharpCode.TextEditor是一种开源的代码与文本编辑器。TextEditor(和SharpDevelop一样)经常使用策略模式。法高亮通常是由一个DefaultHighlightingStrategy类的实例

2021-01-31

DeviceStatusDemo.rar

设备状态监控DeviceStatusDemo, 保存到本地sqlite数据库中

2021-08-07

QRCodeDemo.rar

生成二维码与解析二维码

2021-07-02

CommonFormDesignerDemo.rar

统一列表界面和编辑界面,只使用两个界面即可实现 增删改查 某个表单 DataGridViewConf_Form.xls AutoGenerateUtil.cs NpoiExcelOperateUtil.cs

2021-05-09

AutoGenerateFormExtern.rar

自动生成CRUD,表单相关代码 DataGridViewConf_Form.xls sh_db.sql AutoGenerateUtil.cs

2021-05-08

AutoGenerateForm.rar

自动生成实体类工具 sb.AppendLine($@" /// <summary> /// {columnComment} /// </summary>{attributeMessage} public {dataType} {columnName} {{ get; set; }}");

2021-04-27

BatchUnlockResFileDemo.rar

批量解除资源文件的锁定 使用CMD命令 参考文档: https://docs.microsoft.com/zh-cn/sysinternals/downloads/streams 需要下载 [Streams\\streams64.exe]文件 -d 针对文件或文件夹执行 -s -d 可以递归执行文件夹下的子文件\子文件夹

2021-04-16

C#使用文件读写操作实现仙剑五前传称号存档修改

C#使用文件读写操作实现仙剑五前传称号存档修改

2025-02-15

C#树图显示目录下所有文件以及文件大小

C#树图显示目录下所有文件以及文件大小

2025-01-21

C#使用MVC框架创建WebApi服务接口

C#使用MVC框架创建WebApi服务接口

2025-01-07

使用DataGridView来实现的工步跳转

使用DataGridView来实现的工步跳转

2024-12-31

C#使用MQTT测试,客户端和服务端

C#使用MQTT测试

2024-09-04

C#使用GDI对一个图像Image进行任意角度旋转

C#使用GDI对一个图像Image进行任意角度旋转

2024-08-14

使用GDI画图片生成合成图片并调用打印机进行图片打印

使用GDI画图片生成合成图片并调用打印机进行图片打印

2024-02-06

使用netdxf(C#)框架实现dxf文件读取与导出坐标

使用netdxf(C#)框架实现dxf文件读取与导出坐标

2024-01-12

C#使用随机数模拟英雄联盟S13瑞士轮比赛

C#使用随机数模拟英雄联盟S13瑞士轮比赛

2023-11-05

获取中文词组的汉语拼音首字母拼接

GBK汉字拼音对照表

2023-09-17

SaveDefaultXmlConfigDemo.rar

C#读写应用程序配置文件App.exe.config,本质是xml文件的读写。 我们将配置文件的AppSettings节点和ConnectionStrings节点内容自动绑定到分组框控件GroupBox中,同时可以批量保存。

2022-06-29

C#使用GDI绘制九宫格

C#使用GDI绘制九宫格 DrawDiagramUtil.GenerateEightDiagramSymbol(panel8, "坎一", 2, Color.Green); DrawDiagramUtil.GenerateEightDiagramSymbol(panel3, "坤二", 0, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel4, "震三", 1, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel1, "巽四", 6, Color.Yellow); DrawDiagramUtil.GenerateFiveCenter(panel5, "中宫五"); DrawDiagramUtil.GenerateEightDiagramSymbol(panel9, "乾六", 7, Color.Green);

2022-05-24

九宫格与EightDiagram的画图GDI

九宫与方位 DrawDiagramUtil.GenerateEightDiagramSymbol(panel8, "坎一", 2, Color.Green); DrawDiagramUtil.GenerateEightDiagramSymbol(panel3, "坤二", 0, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel4, "震三", 1, Color.Red); DrawDiagramUtil.GenerateEightDiagramSymbol(panel1, "巽四", 6, Color.Yellow); DrawDiagramUtil.GenerateFiveCenter(panel5, "中宫五"); DrawDiagramUtil.GenerateEightDiagramSymbol(panel9, "乾六", 7, Color.Green);

2022-05-16

西西弗斯黑洞【123数字黑洞】 卡普雷卡尔黑洞(重排求差黑洞):三位数黑洞495

西西弗斯黑洞【123数字黑洞】 /// ​设定一个任意数字串,数出这个数中的偶数个数,奇数个数,及这个数中所包含的所有位数的总数 /// 比如86420135799,按照偶数个数5,奇数个数6,数字总个数11,拼接成一个新的整数 5611 /// 然后依次转化为134,然后转化为123结束 卡普雷卡尔黑洞(重排求差黑洞):三位数黑洞495 /// 三个0~9之间的数字【不能完全相同】组成的三位数的最大值 减去 最小值,获取一个【差值】新三位数(不够就补0) /// 对三位数继续计算最大值 和 最小值,最终差值(终结黑洞值)为495

2022-05-04

FixedDemo C# fixed

使用fixed指针修改内存的值,不能使用fixed关键字获取结构的地址, 坐标,fixed关键字不能获取已固定的表达式的地址 /// 因此fixed不能获取结构struct的地址

2022-04-04

使用循环【迭代】来进行转化数字为中文

/// <summary> /// 对【0000~9999】之间的数字进行迭代解析成中文 /// 类似于除基取余法 /// </summary> /// <param name="multiple">倍率</param> /// <param name="number">需要解析的数字</param> /// <returns></returns> private static string GetChinese(int multiple, int number) { if (number == 0) { return ChineseCollection[0].ToString(); } string chinese = string.Empty; int quotient = 0;//商

2022-03-25

NumberToChineseDemo

/// <summary> /// 数字与中文描述转化示例 /// </summary> public class NumberChineseTranslateUtil { /// <summary> /// 中文字符描述集合 /// 十索引为10 /// 百索引为11 /// 千索引为12 /// 万索引为13 /// 亿索引为14 /// </summary> static readonly char[] ChineseCollection = new char[] { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十','百','千','万','亿' }; /// <summary> /// 数字转中文 /// 按照【个、十、百、千、万、亿】 /// 只考虑正整数和

2022-03-24

根据运算符的优先级,依次添加到堆栈中 /// 最终返回的列表不存在左右小括号,只有数字 以及 加减乘除运算符

StackCalculateUtil RecursionCalculateUtil 使用递归,计算含有小括号,加减乘除的表达式 /// 1.查找小括号,然后依次消去所有的小括号,此时表达式没有小括号 /// 2.进行乘除运算 /// 3.最后进行加减运算

2022-03-21

AutoSaveTreeNodeDataDemo

private void tvMesInterface_AfterSelect(object sender, TreeViewEventArgs e) { ReadConfig(e.Node.Text); //记录选中的节点 LastSelectedNode = e.Node; } /// <summary> /// 内部成员变量标记,确保BeforeSelect事件不会多次触发 /// </summary> bool inside = false; private void tvMesInterface_BeforeSelect(object sender, TreeViewCancelEventArgs e) { if (!inside) { inside = true;

2022-03-04

C#常见位操作 与或非 BitOperation

Console.WriteLine($"与(&)操作符的位都为1时,才为1,其他都为0,因此与(&)操作符的结果范围在[0, Math.Min(x,y)],x,y均为正整数"); Console.WriteLine($"或(|)操作符的位都为0时,才为0,其他都为1,因此或(|)操作符的结果范围在[Math.Max(x,y), x+y],x,y均为正整数"); Console.WriteLine($"非(~)操作符按位取反,1转化为0, 0转化为1,因此非(~)操作符满足[x+~x=-1]一个数与其取反操作之和为-1"); Console.WriteLine($"异或(^)操作符的位不同时为1, 位相同时为0"); Console.WriteLine($"左移(<<)操作符:【最左侧位不要,在最右侧补0】,相当于乘以2个N次方,【移位是除以32后的余数,范围[0,31],即以32为一个周期】"); Console.WriteLine($"右移(>>)操作符:【最右侧位

2022-03-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除