
C#语法
文章平均质量分 71
CodingPioneer
人生就是永无休止的奋斗。
展开
-
高分屏、屏幕有缩放比情况下Winform窗体变形问题解决方案
2.1 值为:devenv.exe所在的路径(安装vs时选择的路径不同位置会有所不同,如果安装了多个版本的vs,则需要添加多个值)请考虑在非DPI感知模式下打开WinForms设计器。可以看到,显示已经正常了,窗体设计器顶部的提示也没有了。Visual Studio版本:VS2022。2.3 数据为:DPIUNAWARE。其他临时方案不推荐用,此处不再描述。主屏分辨率:2560x1600。操作系统:Windows 11。电脑:联想拯救者Y9000P。2.2 类型为:REG_SZ。可以看出明显时有问题的。原创 2023-12-06 11:56:04 · 7368 阅读 · 8 评论 -
C# Net6开发Linux守护进程(后台服务程序,类似Windows服务)案例
在使用net6开发Linux程序时,除了AspNet Core项目外,如果是开发的一个不带Web界面,只是后台运行的控制台程序的话,默认发布到Linux系统时,如果是以start-stop-daemon方式(守护进行方式)启动运行的话,默认是不行的,程序会自动终止,因为在Linux下dotnet程序运行是以会话的方式。那么要如何实现类似Windows服务的方式在后台运行。下面就介绍一下要点吧。1、在VS2022中新建控制台项目。2、在项目的NuGet程序包中安装Microsoft.Extensions.H原创 2022-06-08 17:38:41 · 3737 阅读 · 0 评论 -
C# Net6通过System.Device.Gpio.GpioController实现控制Linux Arm工控机LED指示灯
GPIO是单片机的引脚输入输出功能,在进行嵌入式单片机研发时一般都会有关于LED指示灯的控制,一般是向GPIO接口中写入高低电平实现LED指示灯的亮与灭。硬件设备(工控机):辉为科技BOXPC820操作系统:Linux hw335x-core 4.19.94-gbe5389fd85 #89 PREEMPT Mon Sep 619:27:53 CST 2021 armv7l GNU/Linux。LED指示灯:1路电源指示灯,3路用户可定义LED,默认1路为系统心跳灯,因此剩余2路用户自定义LED(LED原创 2022-06-06 13:20:25 · 2513 阅读 · 1 评论 -
C# Net6 Ant Design of Blazor + WebApi实现文件上传与下载
详情请参阅Ant Design Blazor官网。创建项目时选择Ant Design Pro Blazor App,如下图:在修改Startup.cs,以支持对Web Api的支持详细代码如下:4、在项目中增加Controllers目录和控制器类在项目中增加Controllers目录,并在此目录下增加控制器类FilesController.cs实现文件上传下载API,代码如下:5、使用Ant Design Blazor Upload组件开发上传的UI页面在项目中新增一个razor组件以实现文件上原创 2022-06-06 10:22:47 · 2801 阅读 · 0 评论 -
C#net6控制台程序中读取appsettings.json
C#net6控制台程序中读取appsettings.json背景具体实现使用方法背景我们知道,在原来.netframework平台下的控制台程序配置文件为App.config,微软推出跨平台net6平台后,配置文件改为了appsettings.json,不论是开发控制台应用还是web应用都可以用appsettings.json作为配置文件。在net6下开发web应用,可以直接通过注入的方式读取appsettings.json中的配置项,那么在控制台应用下如何读取呢。具体实现首先是添加NuGet包依赖原创 2022-04-30 21:45:12 · 7466 阅读 · 0 评论 -
C#net6实现Linux系统下修改IP地址、修改系统时间、获取内存信息、获取磁盘信息、重启系统
C#net6实现Linux系统下修改IP地址、修改系统时间、获取内存信息、获取磁盘信息、重启系统背景项目背景实现思路代码实现背景随着微软.net core的出现,C#程序实现跨平台不在困难,5年内微软连续退出.net core 2、.net core 3、net5、net6,到现在net7预览版本,可以发现除了原来WinForm部分,其他大部分的功能都可以通过net6实现跨平台发布。由于其运行效率相比java高出不少,会有越来越道的服务通过net6进行开发。作为工业软件开发者的一员,借助项目需求,就把项原创 2022-04-30 21:30:12 · 3568 阅读 · 3 评论 -
在C#中使用DevExpress中的ChartControl实现极坐标图
在C#中使用DevExpress中的ChartControl实现极坐标图背景实现思路参考代码背景在工控软件的开发中很多业务场景就是使用图表控件展示设备和工艺参数。如下图案例:实现思路通常简单的做法是使用图表控件实现,常用的图表控件有开源的ZedGraph,还有付费的TeeChart和DevExpress。常规的曲线图、柱状图、饼图的实现,三个控件都可以很好的实现,建议使用开源的ZedGraph。但是在实现雷达图、极坐标图等特定图表时ZedGraph就不能支持,TeeChart用起来也不是那么完美,原创 2022-02-17 14:43:20 · 2117 阅读 · 0 评论 -
C#实现在FastReport报表中添加电子图章
C#实现在FastReport报表中添加电子图章实现原理实现效果实现代码实现原理在FastReport设计器中设计报表模版时,在PageFooter区域添加一个PictureObject,调整好PictureObject的大小后在属性窗口中把PageFooter的高度设置为0。然后报表调用与显示的代码部分可以通过调用FastReport.Report.FindObject()方法找到这个PictureObject对象,然后动态的指定图片的路径和显示位置。实现效果实现代码private void原创 2020-12-30 14:16:57 · 1222 阅读 · 0 评论 -
C#Winform实现手写录入签名与保存为透明png图片
C#Winform实现手写录入签名与保存为透明png图片原理效果图实现代码原理在Winform窗体程序中实现鼠标手写输入其实就是画线,基本实现原理是放置一个PictureBox控件,订阅此控件的MouseMove和MouseDown事件,然后通过System.Drawing.Drawing2D.GraphicsPath在MouseMove事件中不断的画线。效果图实现代码using System;using System.Collections.Generic;using System.Com原创 2020-12-30 13:41:02 · 3040 阅读 · 0 评论 -
C#代码实现检测是否能ping通某台服务器
C#代码实现检测是否能ping通某台服务器背景代码实现测试代码运行结果背景在很多业务场景下都需要根据网络状态执行不同的操作,而最常用和效率比较高的办法就是使用ping,那么在C#代码中如何实现这块逻辑呢?代码实现编写一个工具类TPTools.cs,如下:using System;using System.Collections.Generic;using System.Linq;using System.Net.NetworkInformation;using System.Text;原创 2020-11-19 15:38:35 · 1245 阅读 · 0 评论 -
C#Winform中通过RestSharp调用Java的Restful接口的常规操作
C#Winform中通过RestSharp调用Java的Restful接口的常规操作背景Restful API接口发布在C#中使用RestSharp调用Restful API使用RestSharp调用Get接口在C#中使用RestSharp调用Post接口在C#中使用RestSharp实现文件上传在C#中使用RestSharp实现文件下载背景由于Restful协议格式的API接口越来越流行,作为异构系统的便捷集成方式,在不同编程语言中如何方便的发布和调用Restful接口成为了各为码神必备技能之一。R原创 2020-10-19 10:01:51 · 3192 阅读 · 0 评论 -
C#通过反射获得一个类的私有字段
C#通过反射获得一个类的私有字段背景代码实现运行结果关键代码背景在有的业务需求中我们需要把一个类的私有字段遍历出来,这时首先考虑的就是使用反射。下面看看具体实现的代码:代码实现1、BasUser.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Wongoing.Basic{ /// <summary> /// 云端用户实原创 2020-09-08 13:18:37 · 1975 阅读 · 0 评论 -
C#在Winform的PictureBox控件中显示Svg图片
C#在Winform的PictureBox控件中显示Svg图片背景实现思路环境说明实现步骤结束语背景我们知道Svg是一种矢量图形格式,广泛应用与Web App、手机App,本文就介绍一下在Winform的窗口程序中怎么实现显示Svg图片。实现思路实现思路很简单,就是需要从NuGet中引入SVG Rennering Library(ARES),然后通过其提供的SvgDocument实现把svg文件内容转换为Image对象。环境说明VS2013.netframework4.5.1实现步骤1、新原创 2020-06-09 16:14:27 · 9704 阅读 · 1 评论 -
C#在开发Winform应用时如何判断当前程序是否运行了多了实例
C#在开发Winform应用时如何判断当前程序是否运行了多了实例背景代码实现调用示例背景在很多时候,我们开发的应用只要求运行一个实例,不允许多个副本同时运行,这种业务场景就需要判断当前应用运行实例的个数,当达到2时就要进行提示。代码实现具体代码如下:#region 判断是否已经存在运行的实例/// <summary>/// 判断是否已经存在运行的实例/// </summary>/// <returns>存在返回true,不存在返回false</r原创 2020-06-09 15:41:34 · 665 阅读 · 1 评论 -
C#在Winform中实现弹出一个消息窗口过3秒自动关闭
C#在Winform中实现弹出一个消息窗口过3秒自动关闭背景代码实现调用示例背景在Winform应用程序开发中,很多时候我们需要弹出一个消息提示(模式的),又希望不用自己手动去关闭,在这种场景下我们可以开发一个超时消息提示框类,然后进行调用。代码实现具体代码封装如下:MessageBoxTimeout.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;using Syst原创 2020-06-09 15:36:34 · 9072 阅读 · 2 评论 -
C#获取计算机物理内存和可用内存大小封装类SystemInfo
C#获取计算机物理内存和可用内存大小封装类SystemInfo背景代码实现调用代码运行结果背景在程序开发中经常会根据物理内存和可用内存大小的不用而执行不同的逻辑,尤其是在执行大数据量处理时,如果不做可用内存预判很容易出现内存溢出的情况,本文就分享一下在C#中如何获取计算机物理内存大小和可用内存大小的方法。代码实现SystemInfo.csusing System;using System.Collections.Generic;using System.Diagnostics;using S原创 2020-05-26 15:48:16 · 3298 阅读 · 0 评论 -
C#测试栈Stack的基本操作-压栈与出栈
C#测试栈Stack的基本操作-压栈与出栈简介代码及运行结果简介栈是数据结构中很基础也很常用的一种结构,封装了先入后出的基本操作,大部分的开发语言都已提供了栈的功能。下面就看一下在C#中栈的操作方法。代码及运行结果#region 栈-压栈与出栈基本操作-先进后出Stack<int> stack = new Stack<int>();#region 压栈stack.Push(1);stack.Push(2);stack.Push(3);#endregion原创 2020-05-18 09:34:31 · 1480 阅读 · 0 评论 -
C#测试队列Queue的基本操作:入队与出队
C#测试队列Queue的基本操作:入队与出队简介代码及运行结果简介队列是数据结构中很基础也很常用的一种结构,封装了先入先出的基本操作,大部分的开发语言都已提供了队列功能。下面就看一下在C#中队列的操作方法。代码及运行结果#region 队列-先进先出基本操作System.Collections.Generic.Queue<string> que = new System.Collections.Generic.Queue<string>(); #region 入队原创 2020-05-09 11:18:38 · 2694 阅读 · 4 评论 -
C#判断某个Windows服务是否处于运行状态
C#判断某个Windows服务是否处于运行状态直接上代码:定义方法:#region 判断某个Windows服务是否处于运行状态/// <summary>/// 判断某个Windows服务是否处于运行状态/// </summary>/// <param name="serviceName">要判断的Windows服务名称</param>...原创 2020-05-08 17:03:29 · 3140 阅读 · 1 评论 -
C#中最简易实现Java中Collections.shuffle方法的功能-打乱集合元素顺序
@TOC背景我们在学习多钟编程语言时,会经常对这些编程语言的语法特性及基础类库功能进行对比,看看是不是这个功能在另一种编程语言中也是具备的,如果欠缺经常会称为对方阵营程序员吐槽的焦点。今天就对比一个集合操作-打乱集合元素的顺序。java实现我们知道java在java.util包中提供了一个工具类Collections,可以直接调用Collections.shuffle()方法实现对集合元素...原创 2020-05-08 15:04:46 · 1309 阅读 · 1 评论 -
C#控制摄像头实现画面实时播放
C#控制摄像头实现画面实时播放思路说明关键代码完整代码下载思路说明主要是调用Win32API(avicap32.dll)实现。关键代码AviCapture.dllusing System;using System.Runtime.InteropServices;namespace Wongoing.Basic.Camera{ /// <summary> ...原创 2020-04-29 10:22:41 · 2242 阅读 · 0 评论 -
C#基于SerialPort实现串口通讯服务类-SerialPortService
C#基于SerialPort实现串口通讯服务类-SerialPortService背景代码实现关于串口数据读取说明背景在工控软件开发时,除了与PLC通讯外,还会与许多串口通讯设备进行通讯,比如扫码枪、电子大屏等,甚至一个系统可能会同时通过多个串口与多个设备进行通讯。为了方面串口对象的创建,与基本参数设置,我对创建串口对象进行了简单封装,本文就分享一下代码。代码实现SerialPortSer...原创 2020-04-29 09:09:33 · 1871 阅读 · 0 评论 -
C#实现微信企业号API服务端调用封装
C#实现微信企业号API服务端调用封装背景代码封装时间戳方法基础方法:验证服务器接口、服务端解密、服务端加密、获取AccessToken、生成企业获取Code URL、获取授权用户信息、获取调用JSAPI接口的临时票证微信企业号登录授权微信企业号通讯录方法素材方法消息方法菜单方法主代码清单完整代码下载背景在进行微信企业号开发时,我们经常会在java服务端调用微信企业号的相关接口,如比获取Ac...原创 2020-04-27 11:16:38 · 3192 阅读 · 1 评论 -
C#实现把xml解析为实体类或实体类集合-XmlHelper
C#实现把xml解析为实体类或实体类集合-XmlHelper前置条件代码实现前置条件需要先创建好相应的实体类代码实现using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Xml.Serialization;na...原创 2020-04-27 11:04:12 · 1429 阅读 · 0 评论 -
C#实现json解析与序列化的辅助类-JSONHelper
C#实现json解析与序列化的辅助类-JSONHelper背景代码实现背景目前json已经成为了非常常用的数据交换格式,不管你是开发钉钉应用、微信应用、还是企业级的应用,关于json的解析与序列化操作无处不在,为了方便操作,通常会把基本的解析与序列化操作进行封装。下面就分享一下在C#中实现的json解析与序列化类。代码实现JSONHelper.cs代码如下:using System;...原创 2020-04-27 11:01:13 · 1291 阅读 · 0 评论 -
C#实现http的GET/POST请求封装类-HttpRequest
C#实现http的GET/POST请求封装类-HttpRequest背景代码实现背景在开发微信应用时,会经常在C#服务端以Http的GET或POST方式请求钉钉平台或微信平台的接口,为了方便发起请求,同时避免引入其他的dll,本人自己编写了一个发送http请求的类,封装了常规的get和post操作,并且不依赖任何其他的dll,很底层~,也很原生。代码实现HttpRequest代码如下:u...原创 2020-04-27 10:57:54 · 10281 阅读 · 4 评论 -
ASP.NET中GridView实现相同数据的单元格合并
ASP.NET中GridView实现相同数据的单元格合并实现代码#region 合并单元格protected void Unite(GridView gv){ int i; string LastType1; int LastCell; if (gv.Rows.Count > 0) { for (int j = 0; j &l...原创 2020-03-04 14:36:55 · 539 阅读 · 0 评论 -
ASP.NET知识点总结
ASP.NET知识点总结1、ASP.Net的特色与优势2、几对概念3、解决方案构成4、系统对象与状态管理5、控件的分类6、站点地图7、系统导航8、母版页9、系统框架10、数据绑定11、数据源控件12、数据绑定控件GridView数据查询与展示、删除DetailsView 展示多选光棒效果13、数据验证控件14、文件上载15、其他服务器控件DataList 查询与展示16、基于SQL语句分页17...原创 2020-03-03 13:08:25 · 4836 阅读 · 1 评论 -
ASP.NET中Global.asax中的方法定义
ASP.NET中Global.asax中的方法定义今天有同事叫我解释一下Global.asax.cs中的方法的含义,整理一下,发出来给大家看看。跟Request有关的放到后面一起说,先说其他的5个。Application_Init:在每一个HttpApplication实例初始化的时候执行。Application_Disposed:在每一个HttpApplication实例被销毁之前执行。...原创 2020-03-03 11:17:59 · 292 阅读 · 0 评论 -
C#实现旋转门压缩算法工具类的封装SDTHelper
C#实现旋转门压缩算法工具类的封装SDTHelper背景代码实现背景随着大数据概念的逐步落地应用以及人工智能的兴起,数据处理的算法在软件工程领域的地位越来越重要,在数据分析工作岗位或相关项目中为了处理数据会用到各种各样的算法,在开发一个数据分析软件时,为了展示大数据量的曲线走势的效率处理上第一步就是对数据进行过滤(压缩),但又不能使其过度失真,因此就学习了一下旋转门算法。关于旋转门算法的理论网...原创 2020-02-14 18:26:25 · 675 阅读 · 0 评论 -
C#应用程序配置文件App.Config中appSettings配置节内容的读写实现
C#应用程序配置文件App.Config中appSettings配置节内容的读写实现背景需求实现代码背景需求在C#应用程序中经常会把一些配置信息、系统参数信息放到配置文件中,而最常用的配置文件就是应用程序配置文件App.Config或Web.Config。是一个基于XML格式的文档。本文主要说一下关于配置文件中的appSettings配置节内容的读写实现问题。关于appSettings内容的读...原创 2020-02-14 11:35:00 · 2816 阅读 · 0 评论 -
C#程序员经常遇到的30道基础面试题,想你所想
C#程序员经常遇到的30道基础面试题,想你所想1、请解释new与override的区别?2、请解释virtual的含义?3、请解释接口的显示实现有什么意义?4、请以图示的方式解释.net framework?5、什么是.net?6、ref与out有什么不同?7、值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型。8、结构体是值类型还是引用类型?9、装箱与拆箱是什么含义?10、没有...原创 2019-12-31 21:41:43 · 4273 阅读 · 2 评论 -
C#程序中出现意外的字符“$”的解决方法
C#程序中出现意外的字符“$”的解决方法问题描述问题分析解决方法问题描述同事发给我的一个小程序,打开以后编译报错,错误信息:意外的字符“$”问题分析出错代码如下:#region 获取电脑UUID/// <summary>/// 获取电脑UUID/// </summary>/// <returns></returns>publi...原创 2019-12-05 17:25:48 · 12936 阅读 · 2 评论 -
C#基于XPATH方式的XML解析
C#基于XPATH方式的XML解析背景素材程序实现背景基于xml的数据交换方式已在计算机变成领域中流行多年,虽然现在在互联网领域除了json,但基于xml的配置和数据交换协议还是很常用,今天就总结一个小案例介绍一下在C#中解析xml的实现。素材现有xml内容如下:<?xml version="1.0" encoding="utf-8"?><TestInfo> ...原创 2019-12-05 17:12:58 · 1728 阅读 · 0 评论 -
C#中如何在一个类(类库)中获取应用程序所在的目录
C#中如何在一个类(类库)中获取应用程序所在的目录建议方式:string appPath = AppDomain.CurrentDomain.BaseDirectory;原创 2019-12-04 14:39:02 · 1974 阅读 · 0 评论