
.Net Core
文章平均质量分 64
斯内科
这个作者很懒,什么都没留下…
展开
-
C#使用WMI获取控制面板中安装的所有程序列表
WMI全称Windows Management Instrumentation,Windows Management Instrumentation是Windows中用于提供共同的界面和对象模式以便访问有关操作系统、设备、应用程序和服务的管理信息。如果此服务被终止,多数基于 Windows 的软件将无法正常运行。如果此服务被禁用,任何依赖它的服务将无法启动。WMI提供公用接口及对象模型,以存取有关操作系统、装置、应用程序及服务的管理信息。原创 2025-01-20 17:50:59 · 459 阅读 · 0 评论 -
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 · 657 阅读 · 0 评论 -
C#使用GDI对一个图像Image进行任意角度旋转
新建winform应用程序RotatedRectangleDemo,将默认的Form1重命名为FormRotatedImage。文件 FormRotatedImage.Designer.cs。文件FormRotatedImage.cs。基于上篇的基础上,对图片进行任意角度旋转。找一下测试图片 云无月.jpg。上一篇我们对矩形进行旋转。原创 2024-08-14 12:14:42 · 630 阅读 · 0 评论 -
C#中结构struct能否继承于一个类class,类class能否继承于一个struct
一般来说,当数据类型较小且需要频繁创建并传递时,例如表示坐标或颜色等简单的值类型,使用结构体更加合适,因为它们可以被分配在栈上,速度更快,且不需要垃圾回收。不能,因为在我现有的知识中理解的话,因为结构体是值类型而类是引用类型,所以类的资源是在堆上面的这样就可以达到我想象中的继承,因为它可以在堆上面存在,而不会像值类型那样随着程序运行结束终结,在C#设计中,所有的结构stuct都认为是一种轻量型的密封类,密封类sealed是无法被继承的。同样,类对象可以作为结构的成员变量,结构的示例也可以作为类的成员变量。原创 2024-05-29 11:41:18 · 1430 阅读 · 0 评论 -
打印所有声母,韵母组合汉语拼音并显示到表格中
需求:现在我们做一个窗体应用程序,显示出所有的汉语拼音,以及声母与韵母合并在一起是否可组成有效拼接,如果无效,就按×标识,点击某一个单元格可以显示是否可组成拼接,如果可组成拼音,就显示出示例汉字。原创 2023-08-25 18:29:45 · 136754 阅读 · 0 评论 -
C#上位机软件支持中英文多语言切换MultiLanguage
多语言切换思路:使用不同的xml配置文件来映射不同的语言,窗体加载时从默认语言DefaultLanguage.xml中读取配置,比如中文语言 对应Chinese.xml英文语言 对应English.xml比如一个Button控件 btnLogin,因某个窗体的某一个控件的变量名是绝对唯一的我们可以通过键值对字典来进行处理,键名都是控件的变量名称,值为控件的文本内容中文语言在Chinese.xml 设置Name="btnLogin" Text="登录"英文语言在English.xml 设置Name原创 2023-07-19 16:37:09 · 5805 阅读 · 1 评论 -
C#使用Chart进行统计,切换不同的图表类型
每隔5秒钟自动刷新OK和NG数量,可以切换使用柱状图、环形、线性图、饼图等显示。ChartDemo,将默认的Form1,重命名为FormChart,原创 2023-07-14 17:48:43 · 1886 阅读 · 2 评论 -
C#通用的二进制转化为float和double方法
float(Real、Single) 32位 第一位为1代表负数,第一位为0代表正数或者0第二位到第九位代表 指数位,对应的值减去127就是移位数【shiftCount】第十位开始】尾数23位前面加一个1,凑够24位,这个24位尾数的前【shiftCount+1】个数就是整数部分,剩下的就是小数部分double(LReal、Double) 64位 第一位为1代表负数,第一位为0代表正数或者0第二位到第十二位代表 指数位,对应的值减去1023就是移位数【shiftCount】第十三位开始】尾数52位前面加一原创 2023-05-22 15:17:54 · 4691 阅读 · 0 评论 -
C#中Convert与强制转换之间的区别
Reference SourceConvert与强转最大的区别是 增加了范围校验,如果不在范围内,直接抛出异常Convert 类 (System) | Microsoft Learn使用基本数据类型强制转化原理:小数转化为整数,舍弃小数点后的所有数字。C#中小数转化为整数,Convert转换原理如下:如果小数部分小于0.5,或者小数部分大于0.5,则按照四舍五入的方式获取整数C#中小数转化为整数,Convert转换原理如下:如果小数部分等于0.5,则返回最接近的偶数,即返回的偶数与原小数的差的绝对值相差0原创 2022-12-05 20:59:57 · 1388 阅读 · 0 评论 -
C#基础:类class与结构struct的区别
一般来说,某个类对象使用另一个类的对象赋值时,则两者共用一个内存地址【节约内存空间】,ReferenceEquals引用比较此时返回true类的构造函数(构造方法)如果一个类没有显示定义构造函数,则默认有一个无参构造函数,如果一个类已定义了带参数的构造函数,如果不手动定义无参构造函数,则没有无参构造函数。原创 2022-11-02 21:56:22 · 1248 阅读 · 0 评论 -
文本框内容自动投影,浅谈C#中事件的写法与应用
C#中委托和事件,对应设计模式:Observe观察者模式触发事件A的时候自动引起事件B的改变有两个打开的窗体Form1,Form2都有一个文本框控件TextBoxForm1的文本框输入内容时,Form2的文本框内容自动跟随Form1的文本框内容而改变【自动投影】事件定义一般在触发方【肇事者】定义,在触发事件的类中绑定事件处理方法,事件绑定的处理方法一般是在引起后果的一方【被害者】定义。事件的主要作用是 传递参数,事件本质上是一种特殊的委托,因此都有Invoke()或EventNa原创 2022-10-23 17:34:15 · 1294 阅读 · 0 评论 -
判断两个相同引用类型的对象的属性值是否相等,增加对List,Dictionary的支持
之前看到 有递归遍历的,发现 对 List,Dictionary会出现【个数不一致的】异常。这里增加对列表,字典的支持 与解析新建控制台应用程序CompareObjectDemo,选择.NET4.6.1使用反射来进行处理.新建关键类ComparePropertyUtil.cs原创 2022-10-21 19:43:34 · 287 阅读 · 1 评论 -
权重图的最短路径算法【使用元组】
权重图的最短路径算法【使用元组】①InitGraph() 初始化图的顶点,边,以及最短距离默认为无穷大②GetRouterPath()设置第一个顶点A到其他顶点的距离是直连的 ~如果当前顶点A到其他顶点的距离小于Infinity,就以当前距离作为初始最小的距离 ~找出未访问的顶点中,距离最小的顶点的顶点,然后标记顶点为已访问的 ~如果当前节点未访问,并且 最短距离+【最短距离的顶点可到达的顶点的距离之和】,那么就设置当前路径为最小距离 需要一个双重循环原创 2022-09-27 20:51:55 · 879 阅读 · 1 评论 -
C#该委托必须有一个目标且仅有一个目标,使用【同步Invoke】代替【异步BeginInvoke】即可解决
在代理调用BeginInvoke(new AsyncCallback(callBack), null);时,会抛这个异常的原因是该代理变量代理了一个以上的方法.。解决方案:事件使用Invoke代替原来的BeginInvoke因更新界面已经是BeginInvoke了,因此触发事件使用BeginInvoke可能会弹出【委托必须有一个目标且仅有一个目标】错误。在线程中触发事件使用BeginInvoke,同时更新刷新界面也使用BeginInvoke就会出现这种问题。原创 2022-09-22 17:43:07 · 1894 阅读 · 0 评论 -
C#读写应用程序配置文件App.exe.config,并在界面上显示
C#将读写应用程序配置文件App.exe.config,本质是xml文件的读写。我们将配置文件的AppSettings节点和ConnectionStrings节点内容自动绑定到分组框控件GroupBox中,同时可以批量保存。窗体 FormSaveDefaultXmlConfig设计如图: 添加对System.Configuration的引用。为窗体FormSaveDefaultXmlConfig绑定Load事件FormSaveDefaultXmlConfig_Load为按钮btnSaveConfig绑定事件原创 2022-06-29 09:07:57 · 2300 阅读 · 0 评论 -
仿真SoapUI,获取WebService接口的服务类与方法
仿真SoapUI,获取WebService接口的服务类与方法的Soap特性原创 2022-06-19 17:00:05 · 617 阅读 · 0 评论 -
C#使用XmlTextReader和XmlTextWriter格式化Xml字符串
C#使用XmlTextReader和XmlTextWriter格式化Xml字符串,使得Xml字符串美观,即增加换行和缩进。原创 2022-06-16 19:22:48 · 1471 阅读 · 0 评论 -
C#使用GDI绘制EightDiagram
GDI绘图:阳爻:实线,由三个连续的宽度为40,高度为20的小矩形组成 阴爻:虚线,由两个宽度为40,高度为20的小矩形 与 中间的宽度和高度都为0的小矩形组成原创 2022-05-11 08:42:14 · 685 阅读 · 0 评论 -
C#数字黑洞之一(西绪福斯黑洞:123数字黑洞)
西绪福斯黑洞(123数字黑洞)数学中的123就跟英语中的ABC一样平凡和简单。然而,按以下运算顺序,就可以观察到这个最简单的数字。黑洞的值:设定一个任意数字串,数出这个数中的偶数个数,奇数个数,及这个数中所包含的所有位数的总数,例如:1234567890,1.偶:数出该数数字中的偶数个数,在本例中为2,4,6,8,0,总共有 5 个。2.奇:数出该数数字中的奇数个数,在本例中为1,3,5,7,9,总共有 5 个。3.总:数出该数数字的总个数,本例中为 10 个。4.新数:将答原创 2022-05-04 16:34:57 · 1956 阅读 · 0 评论 -
C#数字黑洞之一(卡普雷卡尔黑洞:重排求差黑洞)
数字黑洞数字黑洞,又称指的是某种运算,这种运算一般限定从某些整数出发,反复迭代后结果必然落入一个点或若干点的情况叫数字黑洞。黑洞原是天文学中的概念,表示这样一种天体:它的引力场是如此之强,就连光也不能逃脱出来。黑洞数又称陷阱数,类具有奇特转换特性,任何数字不全相同的整数,经有限重排求差操作,总会得某或些数,这些数即黑洞数重排求差操作即把组成该数数字重排得大数减去重排得小数。卡普雷卡尔黑洞(重排求差黑洞)1.三位数黑洞495:只要你输入一个三位数,要求个,十,百位数字不相同,如不允许输原创 2022-05-04 13:05:39 · 6360 阅读 · 0 评论 -
C#的fixed关键字获取指针地址以及固定内存
我在查看BitConverter类的源代码时,突然发现大量使用 fixed关键字.Reference Source如下代码,将Int16转化为两个字节【C#中,是低字节在前的】public static readonly bool IsLittleEndian = true;// Converts a short into an array of bytes with length // two. [System.Security.SecuritySafe原创 2022-04-04 19:22:40 · 3592 阅读 · 0 评论 -
C#将数字自动翻译为中文,使用循环迭代的方式
这次我们使用循环迭代的方式。思路(除基取余迭代法):以数字4567为例,首先除以1000,获取商为4,以及余数567,拼接 四千,此时处理余数567,除以100,获取商为5,余数为67,拼接 五百,此时处理余数67,除以10,获取商为6,余数为7,拼接 六十,此时处理余数7,直接加上个位 七即可。原创 2022-03-25 16:29:14 · 771 阅读 · 0 评论 -
C#将数字自动翻译为中文
C#将数字自动翻译为中文,比如数字1234 , 翻译为 一千二百三十四数字56789 , 翻译为 五万六千七百八十九原创 2022-03-24 11:35:15 · 2592 阅读 · 4 评论 -
C#使用递归和堆栈计算含有小括号,加减乘除的表达式(2)
这次我们使用栈Stack<T>的方式:思路:1.生成数字和运算符列表:根据运算符的优先级,依次添加到堆栈中,生成的列表不存在左右小括号,只有数字 以及 加减乘除运算符。2.解析列表:计算数字与运算符列表,如果遇到数字时,就进入栈中。如果遇到任何一个运算符时,就使用该运算符计算前两个数字【连续出栈两个数字】,然后将结果放入栈中,直到栈没有任何运算符就终止。此时栈只有一个数字,就是最终结果原创 2022-03-21 15:16:41 · 700 阅读 · 0 评论 -
C#使用递归和堆栈计算含有小括号,加减乘除的表达式(1)
C#使用递归和堆栈计算含有小括号,加减乘除的表达式。实现思路:1.查找小括号,然后依次消去所有的小括号,此时表达式没有小括号2.进行乘除运算3.最后进行加减运算原创 2022-03-18 17:01:21 · 805 阅读 · 0 评论 -
C#使用System.IO.Compression.GZipStream压缩和解压缩文件
新建类GZipStreamUtil,源程序如下:using System;using System.Collections.Generic;using System.IO;using System.IO.Compression;using System.Linq;using System.Text;using System.Threading.Tasks;namespace SiemensPlcDemo{ /// <summary> /// 压缩与解压缩操原创 2022-03-14 10:21:54 · 2257 阅读 · 0 评论 -
C#多人抢票模拟器,假设高铁有seatCount个座位
上次 抢票模拟器 假定高铁只有一个座位,现在设置高铁共有seatCount个座位原创 2022-03-06 22:53:28 · 1304 阅读 · 1 评论 -
C#的几种位操作运算,与、或、非、异或、左移、右移
C#的几种位操作运算,与&、或|、异或^、补码~、左移<<、右移>>原创 2022-03-05 17:34:27 · 16122 阅读 · 0 评论 -
C#TreeView中AfterSelect和BeforeSelect事件自动保存上一次的数据源
当切换TreeView的某一个节点时,自动保存上一次节点的数据源/// <summary> /// 内部成员变量标记,确保BeforeSelect事件不会多次触发 /// </summary> bool inside = false; private void tvMesInterface_BeforeSelect(object sender, TreeViewCancelEventArgs e) {...原创 2022-03-04 23:21:30 · 1710 阅读 · 0 评论 -
C#桥接【Bridge】设计模式
C#桥接【Bridge】设计模式原创 2022-02-27 17:20:17 · 300 阅读 · 0 评论 -
设计模式-策略Strategy
策略Strategy,策划,或者成规划;部署;统筹安排。比如出行策略:有飞机、火车、公交车、自行车等,每一种出行方式都是一种策略,策略可随时替换。策略模式(Strategy)定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。原创 2022-02-26 18:31:56 · 366 阅读 · 0 评论 -
C#关于加锁的多线程同步方法的代码规范
我们在程序开发中,经常会出现多线程中进行同步操作,比如多人抢票,多人抢红包,库存数量的更新,都需要进行局部同步操作。使用锁对象进行同步访问的几种代码示例进行比较:1.静态类的静态变量锁,加锁有效2.局部类成员变量锁,加锁无效【非常严重】!3.公共类成员变量锁,加锁有效4.局部类静态变量锁,加锁有效5.公共类静态变量锁,加锁有效原创 2022-02-19 23:09:24 · 3447 阅读 · 0 评论 -
C#关于Facade【门面、外观】设计模式
门面模式,外观模式Facade Pattern将多个子功能使用统一的入口Facade分别调用使用,每个子系统的功能是都是独立的,互不影响。每个需要使用的子功能的类的对象作为Facade类的成员变量。原创 2022-02-14 23:17:38 · 229 阅读 · 0 评论 -
C#科学计数法(如:1.2E+06)字符串转化decimal类型失败的处理
科学记数法【如:2.65E-4】本质是浮点数的表示方式,对应float和double类型,本质是二进制。而decimal是十进制小数,本质是十进制。因此会出现转化失败的问题。如需转化,就需要先转化位double类型,然后强制转化为decimal原创 2022-01-27 12:57:38 · 8543 阅读 · 0 评论 -
C#几种集合列表List,链表LinkedList,集HashSet,队列Queue,栈Stack,字典Dictionary的区别与说明
C#几种集合列表List,链表LinkedList,集HashSet,队列Queue,栈Stack,字典Dictionary的区别与说明原创 2022-01-09 10:10:52 · 3028 阅读 · 0 评论 -
C#获取真实文件类型MIME,而不是通过文件扩展名
文件后缀名获取的可能是假的,比如 a.dll 可能是a.xml修改后缀扩展名来伪装的,本质上a.dll仍然是一个XML文件。获取真实文件类型MIME。比如.rar强行修改扩展名后伪装成.jpg经测试无法获取文本文件的真实类型【.txt,.csv,.log,.sql】原创 2022-01-06 21:01:51 · 2506 阅读 · 0 评论 -
C#自动获取指定文本文件的编码格式Encoding以及BOM (Byte Order Mark字节顺序标记)
我们在读写文本文件(如.txt,.csv,.log等)过程中,如果指定的文本文件编码格式不正常,读写就会出现乱码现象。这里自动获取编码格式BOM【字节顺序标记】BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码。原创 2022-01-06 09:53:22 · 6359 阅读 · 1 评论 -
C#Ping命令【因特网控制消息协议ICMP】
Internet 控制消息协议 (ICMP)ICMP协议ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义.原创 2022-01-04 20:11:29 · 1696 阅读 · 0 评论 -
火车票站点、订票、C#多人抢票模拟器【多线程】
多人抢火车票模拟器,多线程原创 2021-12-26 21:18:35 · 2882 阅读 · 0 评论 -
C#Base64简单加密与解密
Base64属于简单加密算法的一种。类似于凯撒密码【它是一种替换加密的技术】Base64字符串由65个字符组成,大写字母A~Z,小写字母a~z,数字0~9,以及三个特殊字符+、/、=【=“等号”用于补充字符,使Base64字符串长度变成4的倍数】考虑到初始源字符串可能是任何文本编码的【中文GBK,Unicode,ASCII等】,因此Base64字符串加密只处理字节数组【字节数组通过encoding.GetBytes(string src)获得】。原创 2021-12-10 19:59:02 · 12217 阅读 · 0 评论