C#
文章平均质量分 56
星河队长
上位机自动化 控制软件,视觉识别,软件算法
展开
-
System.ComponentModel.DataAnnotations 使用介绍
RequiredAttribute:确保数据字段的值是必须的,不能为null或空。KeyAttribute:标识一个属性作为实体的主键。MaxLengthAttribute 和 MinLengthAttribute:定义字符串属性的最大和最小长度。StringLengthAttribute:同时定义字符串属性的最大和最小长度。RegularExpressionAttribute:用于验证属性值是否符合指定的正则表达式。RangeAttribute:用于验证数值属性是否在指定的范围内。原创 2024-04-08 22:09:35 · 716 阅读 · 0 评论 -
C# WinForms应用程序中,FileSystemWatcher使用监视文件系统更改
在C# WinForms应用程序中,FileSystemWatcher 类用于监视文件系统更改,例如文件的创建、删除、修改以及目录的更改。现在,当你运行WinForms应用程序时,FileSystemWatcher 将开始监视你指定的目录中的文件更改,并在触发相应的事件时显示消息框。你可以根据需要调整事件处理程序中的逻辑,比如将更改记录到日志文件中,而不是显示消息框。在窗体的构造函数或某个初始化方法中,创建 FileSystemWatcher 的实例,并设置其属性以监视特定的目录和文件类型。原创 2024-03-21 21:15:10 · 393 阅读 · 0 评论 -
C#序列化和反序列化以及json保存和读取
什么是 Json ? Json【javascript对象表示方法】, 它是一个轻量级的数据交换格式,我们可以很简单的来读取和写它, 并且它很容易被计算机转化和生成,它是完全独立于语言的。Json支持下面两种数据结构:键值对的集合–各种不同的编程语言,都支持这种数据结构;有序的列表类型值的集合–这其中包含数组,集合,矢量,或者序列,等等。Json有下面几种表现...原创 2019-10-17 10:03:52 · 1962 阅读 · 0 评论 -
c#写入生成Json格式文本
“{“header”:{“head1”:“head1”,“head1”:“head1”},“body”:{“head1”:“head1”,“head1”:“head1”},“result”:{“head1”:“head1”,“head1”:“head1”}}”应用下文代码可以得到以上结果;using Newtonsoft.Json; static List<string&...原创 2019-10-14 17:01:39 · 5700 阅读 · 0 评论 -
C#批量更改控件显示名称(举例中英文语言切换)
在WinFrom开发中有中英文切换需求时需要批量更改控件的显示名称可以将控件名字和显示名称保存在xml文件中可以将控件保存进文件,也可从文件中加载来更改显示名原创 2022-10-19 17:19:10 · 934 阅读 · 0 评论 -
C#采用反射获取字段的名字和注释自动添加到表格显示和修改
C# 自动编程,自动获取字段的名称和值,加载到表中显示、修改、保存原创 2022-04-16 13:43:09 · 1877 阅读 · 0 评论 -
C#用异步操作解决界面卡顿问题
新建窗体1 放一个按钮button事件如下,界面卡死 private void button1_Click(object sender, EventArgs e) { int i = 0; while (true) { Thread.Sleep(20); i++; if (i > 8000) return;原创 2021-10-15 10:23:48 · 5486 阅读 · 2 评论 -
VS新建组件类设计(以串口通讯为例)
新建项目新建项目ComponentTest,在项目中添加Component组件,如下图在新的组件类中进行编辑```csharpusing System;using System.Collections.Generic;using System.ComponentModel;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading.Tasks;using System.IO原创 2021-03-20 20:43:41 · 400 阅读 · 0 评论 -
C#实现按键控制窗体移动
实现按键控制窗体移动:1 打开窗体接收按键事件的属性设置: mform.KeyPreview = true;2 更改窗体的位置this.Location 的值using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threa原创 2020-11-11 16:04:51 · 1170 阅读 · 0 评论 -
异步线程使用的阻塞问题async await 举例
问题描述:我们在按钮事件下直接调用异步线程,会出现阻塞,程序卡死现象。如图点击直接运行按钮的效果解决方法:在线程内运行异步线程,可以解决阻塞问题。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.T原创 2020-11-02 16:15:47 · 1146 阅读 · 0 评论 -
DataGridView控件实现行折叠效果
一 重写表格using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Drawing;using System.Drawing.Drawing2D;namespace DataGrideViewControl{ public clas原创 2020-10-12 19:36:50 · 3649 阅读 · 3 评论 -
C#的扩展方法
前言:上篇 序列化效率比拼——谁是最后的赢家Newtonsoft.Json 介绍了下序列化方面的知识。看过Demo的朋友可能注意到了里面就用到过泛型的扩展方法,本篇打算总结下C#扩展方法的用法。博主打算分三个层面来介绍这个知识点,分别是:.Net内置对象的扩展方法、一般对象的扩展方法、泛型对象的扩展方法。 什么是扩展方法?回答这个问题之前,先看看我们一般情况下方法的调用。类似这样的通用方法你一定写过:复制代码static void Main(string[] args){ string s转载 2020-09-28 19:35:23 · 249 阅读 · 0 评论 -
C#图形教程画笔画刷等
C#图形编程C#提供了一整套相当丰富的类库、方法以及事件以供开发者使用。C#还引入了GDI+,它是由GDI演变而来的,具有比GDI更强大的功能而且简化了程序员的编程工作。所以开发者运用这些,就可以很方便的开发出具有强大图形图像功能的应用程序了。本文,笔者就通过一些实例像读者介绍一下C#中的图形编程的基本知识。简单实例:首先,让我们从例子开始,以下是一个最简单的实例: 在上面的实例中,我们用到了一个方法:DrawString(),它带有5个参数。同时,我们发现在运用DrawString()方法以前转载 2020-07-02 13:24:47 · 3138 阅读 · 0 评论 -
params参数使用实现任意长的参数
基本实现计算总数static void Main(string[] args) { int[] n = { 99, 88, 77 }; Test("张三", n); Console.ReadKey(); } public static void Test(string name, int[] score) { int sum = 0;转载 2020-06-30 10:21:27 · 951 阅读 · 0 评论 -
yield return作用
yield return作用在 return 时,保存当前函数的状态,下次调用时继续从当前位置处理。示例说明如下代码所示,主函数使用 foreach 输出 GetNumbers() 方法的数据。函数一共有3个数据,调用了三次此函数的处理部分,而初始化部分只调用了一次。使用方法解析这个函数在处理循环时可以每生成一个数据就返回一个数据让主函数进行处理。在单线程的程序中,由于不需要等所有数据都处理好再返回,所以可以减少对内存占用。比如说有3个数据,如果一次性处理好返回,需要占用3个内存单位,而一个个返回转载 2020-06-30 10:18:31 · 407 阅读 · 0 评论 -
IEnumerable和IEnumerator,自定义实现可枚举类
//IEnumerable是一个可枚举类并且返回String类型的枚举类IEnumeratorusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Collections;namespace foreachTest{ //继承IEnumerable接口,其实也可以不原创 2020-06-30 10:16:29 · 698 阅读 · 0 评论 -
C#绘图双缓冲技术--画面闪烁的关键原因分析
GDI+的双缓冲问题终于搞定了, 真是松了一口气!一直以来的误区:.net1.1 和 .net 2.0 在处理控件双缓冲上是有区别的。.net 1.1 中,使用:this.SetStyle(ControlStyles.DoubleBuffer, true);.net 2.0中,使用:this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);怪不说老是提示参数无效,一直也不知道是这个问题,呵呵要知道,图元无闪烁的实现和图元的绘制方法没有多少关系转载 2020-06-23 10:44:16 · 683 阅读 · 1 评论 -
C#在用户控件上自定义属性和属性集合
using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApplication2{原创 2020-06-22 14:38:53 · 2918 阅读 · 2 评论 -
C# 设计模式-工厂方法模式
工厂方法模式优点:1 可扩展 ,加入新产品时,无需对原代码进行修改,只需在项目空间中添加实现接口的类即可2 工厂可以自主设计产品,并且如何创建产品的细节全部在工厂内部,也叫多态工厂模式using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Configuration;using System.R原创 2020-06-15 14:18:12 · 129 阅读 · 0 评论 -
C#LINQ的join和let语句使用方法
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;namespace LINQtest{ class Program { public class Student //声明student类 { public in原创 2020-06-11 10:40:08 · 611 阅读 · 0 评论 -
C# linq 的from where select用法举例
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;namespace LINQtest{class Program{static void Main(string[] args){string[] mm = new string[] { “2”, “4” ,“2312”, “34原创 2020-06-11 10:23:38 · 1980 阅读 · 0 评论 -
特性标记权限对变量进行数据保存和跟踪
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.ComponentModel;using Newtonsoft.Json;namespace ParamAttribute{ /// <summary> /// 用户信息 /// </summary>原创 2020-06-08 16:18:55 · 163 阅读 · 0 评论 -
反射加载dll程序集调用指定函数
假设在C盘根目录下有个Dog的Dll程序集文件,该程序集文件中包含类Dog 该类中有个狗叫几声的方法,如何通过反射来加载这个C:\Dog.dll,并且调用Dog类里面的Sound方法呢:public class Dog{ public void Sound(int count) { Console.WriteLine("叫了{0}声",count); }}具体如下:首先反射主要用到了System.Reflection命名空间,所以程序中一定要引用这个命名空间。usin转载 2020-06-04 18:13:34 · 197 阅读 · 0 评论 -
C#通过反射和自定义属性,调用方法
反射调用方法可以用在架构只用先写好结口接口具体实现在后面的状况对特定使用的方法可以标记特别属性```csharpusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Threading;using System.Reflection;namespace ReflectMethod{原创 2020-06-04 16:24:49 · 909 阅读 · 0 评论 -
C#通过反射调用方法
用反射调用方法常用于软件架构中假如你定义好了基类和接口,其他人使用基类派生出新的方法,你在不知道有多少类会使用此基类派生,但是你需要调用所有的派生类的方法时,就可以这样,直接遍历相同命名空间中的由基类派生的所有类,然后实例化所有类,调用所有方法using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.T原创 2020-06-04 16:05:58 · 3285 阅读 · 0 评论 -
System.RuntimeType和type的区别typeof和gettype的区别
typeof: The typeof operator is used to obtain the System.Type object for a type.运算符,获得某一类型的 System.Type 对象。Type t = typeof(int);GetType: Gets the Type of the current instance.方法,获取当前实例的类型。int i =...原创 2020-04-21 16:59:46 · 1441 阅读 · 0 评论 -
C#的符号用法@ $?问号用法
$符号用法在字符串前加$相当于对string.format()的简化如:int m_a = 1;int m_b = 2;使用string.format():Console.WriteLine(string.format("this is a:{0},this is b:{1}"),m_a,m_b));使用了$,就可以在原来占位符的地方直接用参数代替Console.WriteLin...原创 2020-04-21 14:52:25 · 7735 阅读 · 0 评论 -
C#的自定义属性AttributeUsage用法
// 描述如何使用一个自定义特性 SomethingAttribute [AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = true)] //********自定义特性SomethingAttribute**************// public cl...转载 2020-04-21 14:40:02 · 1816 阅读 · 0 评论 -
C#操作环境变量
操作环境变量利用System.Environment.GetEnvironmentVariable()方法可以很方便地取得系统环境变量,如: System.Environment.GetEnvironmentVariable(“windir”)就可以取得windows系统目录的路径。以下是一些常用的环境变量取值:System.Environment.GetEnvironmentVari...转载 2020-04-21 09:42:07 · 1426 阅读 · 0 评论 -
C#获取当前文件路径
获取相对路径(1) 比如:虚拟目录映射: C:\inetpub\wwwroot\MySite那么: “/” 对应 MySite 这个目录当你写 /1.jpg 的时候,那么Asp.net只会到 MySite 下找,即寻找 MySite/1.jpg 是否存在。当你写 ~/1.jpg 的时候,那么Asp.net会在整个 MySite 下找 1.jpg,就算实际路径在 C:\intepub\...原创 2020-04-21 09:39:28 · 2434 阅读 · 0 评论 -
enum利用parse将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。
enum Colors { Red = 1, Green = 2 }; static void Main(string[] args) { Console.WriteLine("The entries of the Colors Enum are:"); foreach (string colorName in ...原创 2020-04-20 13:42:29 · 444 阅读 · 0 评论 -
C#写软件开机自启动
using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Linq;using System.Text;using System.Threading.Tasks;using System.W...原创 2020-01-09 13:41:23 · 202 阅读 · 0 评论 -
C#键盘扫描
using System;using System.Collections.Generic;using System.Diagnostics;using System.Runtime.InteropServices;using System.Text;namespace WindowsFormsApplication2{ public class ScanerHook ...原创 2020-01-09 13:38:01 · 449 阅读 · 0 评论 -
C#写log文件
using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Linq;using System.Text;using System.Threading.Tasks;using System.W...原创 2020-01-09 13:35:48 · 909 阅读 · 0 评论 -
C#写INI文件
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Runtime.InteropServices;namespace MotionCtrl{ public class IniFi...原创 2020-01-09 13:33:12 · 183 阅读 · 0 评论 -
C#的Socket通讯
服务器代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Net.Sockets;using System.Net;namespace WindowsFormsApplication1{ ...原创 2020-01-09 13:31:29 · 240 阅读 · 0 评论 -
C#绘制图形
C# GDI+ 绘制图像原文:http://cs.cqut.edu.cn/NetTeachPlatform/Chapter8.htm第8章 绘制图像本章要求掌握用GDI+绘制直线、圆、长方形等图形,在第七章的基础上编写一个类似于“画图”图像图形处理程序8.1 绘图所用到的常用控件及类绘图用到的PictureBox,Image, Bitmap, OpenFileDialog,SaveFil...转载 2019-11-26 10:44:37 · 6877 阅读 · 1 评论 -
C#线程中操作界面&异步线程
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.W...原创 2019-11-01 16:35:15 · 1601 阅读 · 0 评论 -
C#stream读写
什么是Stream?MSDN 中的解释太简洁了: 提供字节序列的一般视图(我可不想这么理解,这必定让我抓狂,我理解的流是向自然界的河流那样清澈而又美丽,c#中的流也是一样,许多技术或者说核心技术都需要流的帮忙)那什么是字节序列呢?其实简单的来理解的话字节序列指的是:字节对象都被存储为连续的字节序列,字节按照一定的顺序进行排序组成了字节序列那什么关于流的解释可以抽象为下列情况:打个比方...转载 2019-11-01 16:26:26 · 6961 阅读 · 0 评论 -
system.IO&&stream学习之textreader和streamreader
一、为什么要介绍 TextReader?首先让我们来理解下什么是TextReader,从字面上的意思入手的话,大家就会恍然大悟了一个对于Text的读取器,可是又是怎么读取的呢?聪明的你肯定会想到,当然是通过连续的字符进行读取, 为什么在介绍StreamReader之前,要搞这个东东? 答案其实很简单:他们两个就是父子关系,要了解StreamReader最好先了解他的父亲,请允许我对他们进行下简单...转载 2019-11-01 10:50:06 · 713 阅读 · 0 评论