![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C#
C#
小邢同学
自动化设备上位机软件工程师、视觉处理算法工程师、上位机运动控制工程师。目前使用C#与MFC编写上位机,使用运动控制卡进行运动控制,工业相机做视觉处理;共同构成自动化机械设备的软件部分。
我的邮箱:2296776525@qq.com
我的QQ:2296776525
展开
-
C#halcon点拟合圆形函数
public bool FitCircle(double[] X, double[] Y, out double RcX, out double RcY, out double R) { try { HTuple hTuple = new HTuple(); HTuple hTuple2 = new HTuple(); int num = 0; for (num = 0; num <..原创 2021-01-15 11:11:06 · 734 阅读 · 1 评论 -
C#模板匹配创建模板与查找模板函数
class ShapeModulInspect { /// <summary> /// /// </summary> /// <param name="InspectImg">图像</param> /// <param name="ModulRoi">ROI</param> /// <param name="AngleStar原创 2021-01-15 11:10:04 · 1330 阅读 · 1 评论 -
CST光源控制卡简单操作C#程序
namespace AttachMachine{ class LightCST { private SerialPort serialPort ; public LightCST() { serialPort = new SerialPort(); } public bool CreatPort(String PortName) { seria原创 2021-01-15 11:05:42 · 1986 阅读 · 0 评论 -
C# ini文件读写函数
namespace Tools{ class IniOperate { [DllImport("kernel32")] private static extern int GetPrivateProfileString(string section, string key, string defVal, StringBuilder retVal, int size, string filePath); [DllImport("kernel32原创 2021-01-15 08:37:18 · 264 阅读 · 0 评论 -
工业相机基类与实现
namespace AttachMachine{ //相机参数 public struct CamPara { public int DeviceID; //设备描述 public string Name; public int WorkMode; //工作类型,0为连续模式,1为触发模式 public float ExpourseTime; //曝光时间原创 2021-01-14 15:58:05 · 451 阅读 · 0 评论 -
运动控制卡的基类函数与实现例子
基类namespace MotionCardDll{ public abstract class IMotionCard { public Int32 m_Mode; public Int32 m_BoardId;//Card 号 public Int32 m_Card_name; public Int32 m_StartAxisID; public Int32 m_TotalAxisNum;原创 2021-01-14 15:32:56 · 649 阅读 · 0 评论 -
C#学习笔记(控制台程序)
using System;using System.Collections.Generic;using System.Linq;using System.Linq.Expressions;using System.Text;using System.Threading.Tasks;//namespace test//{// class Program// {// public delegate bool ShortDelegate(int[] x);//原创 2021-01-04 14:37:31 · 362 阅读 · 0 评论 -
深度学习手写体图片从数据库转化成图片格式C#
class Program { static void Main(string[] args) { var directory = new DirectoryInfo(@"E:\Training Images"); directory.Create(); var index = 0; foreach(var line in File.ReadA原创 2020-12-24 14:41:39 · 445 阅读 · 0 评论 -
玩转C#控件-常用控件属性
文章目录概述Control类的基本属性1、Name属性2、Text属性3、Anchor属性4、Dock属性Control类的方法和事件 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 概述控件是包含在窗体上的对象,是构成用户界面的基本元素,也是C#可视化编程的重要工具。首先介绍一下各个控件共有的属性事件和方法。在C#中,所有的窗体控件,比如标签控件、文本框控件、按钮控件等全部都继承于using System.Windows.Forms.Control;原创 2020-11-10 11:19:43 · 2524 阅读 · 0 评论 -
玩转C#窗体-属性、方法和事件详细说明
文章目录简介Windows窗体的基本属性一、布局属性1、StartPosition属性2、Location属性3、尺寸属性4、WindowsState属性5、Autoscroll属性6、AutoSize属性二、样式属性1、ControlBox属性2、MaximizeBox属性3、MinimizeBox属性4、HelpButton属性5、ShowIcon属性6、Icon属性7、ShowInTaskbar属性8、TopMost属性9、IsMdiContainer属性10、Opacity属性11、MainMenu原创 2020-11-10 10:26:55 · 6609 阅读 · 2 评论 -
C# delegate与event,委托与事件
文章目录委托示例事件实例 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 委托和事件是C#中两个比较复杂的概念,这篇文章介绍两个概念与基本用法,让大家理解C#中的事件处理机制。委托委托也叫代理,就是把事情交付给别人去办,如代购。C#中如果将一个方法委托给一个对象,这个对象就可以全权代理这个方法的执行。使用委托时首先要定义委托,声明委托能代理什么类型的方法。 语法格式如下:<访问修饰符> delegate 返回类型 委托名();从上边的原创 2020-11-07 11:39:43 · 465 阅读 · 0 评论 -
C#抽象类与密封类-abstract-sealed
文章目录抽象类和抽象方法实现抽象方法接口、类和抽象类 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 如果说继承是面向对象设计理论的基石,那么抽象理论和方法就是继承理论的顶梁柱。抽象类和抽象方法简单的说,用来描述共性的类就是抽象类,抽象类中不考虑具体实现,只确定必须具有的行为,即确定抽象方法。如教师的任务是教学,具体教什么,如何教,每个教师都有自己独特的一面,对教学这个动作就可以提取出来作为抽象方法,而不考虑具体实现内容。包含抽象方法的类就是抽象类。抽象类原创 2020-11-07 08:47:44 · 776 阅读 · 0 评论 -
interface-C#接口-统一的标准
文章目录接口的定义接口的实现实例1实例2接口的继承 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 接口是面向对象编程的一个重要技术,在C#中负责实现多重继承。一个接口定义一个协定,实现接口类或结构体必须遵守其协定。比如耳机接口,比如显示器接口。接口的定义接口用来描述一种程序的规定,可以 属于任何类或者结构体的一组相关行为。接口可由方法、属性、事件、索引器或这4种成员类型任何组合构成。接口不能包含常数、字段、运算符、实例构造函数、析构函数或类型,也不能包含原创 2020-11-06 11:27:25 · 427 阅读 · 1 评论 -
virtual、override-蝌蚪和青蛙-C#多态
文章目录多态的概念多态的实现 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 多态的概念什么是多态?多态一次最早用于生物学,指同一种族的生物具有不同的特性。比如青蛙小时候是蝌蚪,长大了是青蛙,同是一种生物但是有不同的表现形式。在C#中多态的定义是:同一操作作用于不同类的对象,不同的类的对象进行不同的执行,最后产生不同的执行结果。如所有的动物都有吃东西这一功能,但是羊吃草,狮子吃肉,每种动物都有自己的吃食方式。重载是多态的一种。多态的实现C#中支持基原创 2020-11-06 10:00:56 · 187 阅读 · 2 评论 -
子承父业-C#继承
文章目录继承的定义和使用实例继承的特性继承的可传递性继承的单一性继承中的访问修饰符base和this关键字basethis实例 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 继承是软件复用的一种形式。使用继承可以复用现在类的数据和行为,为其赋予新功能而创建出新类。复用能节约开发的时间,能复用经过实践检验和调试的高质量代码,提高系统的质量。继承的定义和使用在现有类(基类、父类)上建立新类(派生类、子类)的过程称为继承。派生类能自动获得基类的除构造函数和析构原创 2020-11-05 17:57:18 · 272 阅读 · 0 评论 -
namespace-C#命名空间
博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 C#程序是利用命名空间组织起来的。命名空间既做程序的内部组织系统,又用做外部组织系统。就像一个国家为了便于管理,分成多个省份一样。声明命名空间命名空间是.NET 避免名称冲突的一种方式。例如,定义类Phone来表示手机,同时其他人也可以定义一个Phone类,只要二者不在同一个命名空间中,就不引起命名冲突。在一个命名空间中可以有多个类、结构、接口等。在同一个命名空间中,类名、结构、接口等不可重名。 语法格式如...原创 2020-11-05 10:05:22 · 2460 阅读 · 10 评论 -
partial 分部类-庞大类的瘦身计划
文章目录使用情况语法 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 一般来说,一个类、结构或者接口位于一个源文件中,但是某些情况,比如大型项目、特殊部署时,可能需要把一个类、结构或者接口放在几个文件中来处理。等编译时,自动的把它们组合起来,成为一个完整的类,这就用到分部类了。使用情况类型特别大,不宜放在一个文件中实现一个类型中的一部分代码为自动化工具生成的代码,不宜与自己编写的代码混在一起。需要多人合作编写一个类语法分部类是一个纯语言层的编译原创 2020-11-04 18:08:23 · 174 阅读 · 0 评论 -
MINI类-结构体
文章目录结构体的定义和使用 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 结构体与类相似,通常用来封装小型的相关变量组,例如,学生的学号、姓名、性别、年龄等。结构是一种值类型,通常创建结构要比创建类的速度快。如果需要一些紧凑循环,需要在其中创建大量的新数据结构,则应考虑结构体而不是类。结构体的定义和使用在C#中,可以将结构看成轻量级的类。定义结构的定义类相似,采用struct进行定义,每个struct类型数据可以是常量、变量、构造函数、方法和属性等成员。原创 2020-11-04 17:33:39 · 186 阅读 · 0 评论 -
从一般到特殊-C#中的对象
文章目录对象的概念对象的创建和使用匿名类型和初始化器构造函数和析构函数构造函数析构函数范例 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 对象的概念类是具有相同特征一类事物的抽象,而对象是类的实例。类和对象有本质的区别,类是从对象中抽取出来的一类对象的描述,对象是类中的个体,是一个具体的事物,创建对象就是从抽象到具体的过程,是将类的属性和行为实例化的过程。类与对象的关系可以比喻为设计手机和具体手机的关系,类就像手机机型设计一样说明了手机所应该具备的所有属原创 2020-11-04 10:42:07 · 211 阅读 · 0 评论 -
从特殊到一般-C#中的类
文章目录 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 博主简介:工业自动化上位机软件工程师、机器视觉算法工程师、运动控制算法工程师。目前从业于智能制造自动化行业。博主邮箱:2296776525@qq.com 帮忙点个赞吧。哈哈。...原创 2020-11-03 16:48:06 · 192 阅读 · 0 评论 -
形象的列举-C# 枚举
文章目录简介例子分析点拨 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 简介枚举类型用于声明一组命名常数。 定义枚举类型语法格式如下:enum 枚举数组名{枚举成员列表};例如:enum week{星期一,星期二,星期三,星期四,星期五,星期六,星期日};枚举类型week包含7个常数,默认第一个常数为0,对应星期一。每个名称对应的常数都比前面加一个1,最后一个常数为6,对应星期天。应当于为常数起了名字,把七个常数组合在一起构成枚举类型week原创 2020-10-26 17:46:58 · 159 阅读 · 0 评论 -
C#数组基本操作
Reverse,IndexOf,Sum()、Max()、Min()、Average(),Join,Split,IndexOfAny,LastIndexOfAny,Trim原创 2020-10-22 17:18:12 · 3934 阅读 · 0 评论 -
StringBuilder-C#字符串对象
StringBuilder;Append;AppendLine;ToString原创 2020-10-20 16:58:18 · 216 阅读 · 0 评论 -
C#字符串的基本操作
Equals;CompareTo;Compare;Contains;IndexOf;SubString;Insert;Remove;Replace;Trim原创 2020-10-20 16:03:34 · 545 阅读 · 1 评论 -
try、catch、finally 和 throw-C#异常处理
文章目录 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 异常是在程序执行期间出现的问题。C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。C# 异常处理时建立在四个关键词之上的:try、catch、finally 和 throw。try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块。catch:程序通过异常处理程序捕获异常。catc原创 2020-10-19 15:01:07 · 832 阅读 · 4 评论 -
C#条件运算符if-else的简化格式
文章目录 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 条件运算符(?:)是if……else的简化形式其使用格式为:操作数1?操作数2:操作数3;其中,操作数可以是变量或者表达式。其输出结果为:如果操作数1为真,输出操作数2;如果操作数1为假,输出操作数3。例子如下: int A; bool bFlag = true; if (bFlag) {原创 2020-10-19 14:43:48 · 4007 阅读 · 0 评论 -
C#逻辑运算符及解析
文章目录 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 逻辑运算符用于连接一个或多个条件,判断这些条件是否成立。C#的逻辑运算符可以分为两类:“&” “|” “^” 称为整体逻辑运算符,他们允许在两个数值上进行布尔运算;“&&” “||” “!” 称为条件逻辑运算符,运算符的两边的操作数的值必须是布尔类型,操作数常为条件表达式。运算符说明!=比较两个值是否不等==比较两个值是否相等&产生两个操作数的按位与原创 2020-10-19 14:20:25 · 7684 阅读 · 1 评论 -
C#比较运算符及解析
文章目录 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 比较运算符得出的结果是逻辑型(bool),即 True 或 False 。比较运算符又称关系运算符,我们可以把它理解为一种判断,判断的结果是真或者是假,关系表达式的返回值总是布尔型。也就是说,比较运算符主要用于比较两个操作数并得到一个布尔类型的值。运算符说明>比较一个数是否大于另一个数<比较一个数是否小于另一个数>=比较一个数是否大于等于另一原创 2020-10-19 13:58:53 · 893 阅读 · 0 评论 -
C#赋值运算符及解析
文章目录 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 赋值运算符对运算符右边的操作式求值,并用该值设置运算符左边的变量操作式。赋值运算符主要有简单赋值及复合赋值运算符;可以放在赋值运算符左边的对象类型是变量、属性、索引和事件。如果赋值运算符两边的操作数类型不一致,就需要首先进行类型转换,然后再赋值。运算符说明=把 “=” 后的值赋给 “=” 前的变量+=加赋值 x+=y 等价于 x=x+y-=减赋值 x-=原创 2020-10-19 13:50:45 · 907 阅读 · 0 评论 -
C# 引用类型与值类型转换-装箱和拆箱
文章目录简介用例装箱拆箱 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 简介拆箱就是把 “引用” 类型转化为 “值” 类型;装箱就是把 “值” 类型转化为 “引用” 类型;装箱与拆箱是数据类型转换的一种特殊应用。有时候某些方法的参数要求使用 “引用” 类型,而想把 “值” 类型的变量通过这个参数传入,就需要这个操作。用例装箱int n = 4;object obj = n; //装箱Console.WriteLine("n的初始值为:{原创 2020-10-15 11:27:07 · 1320 阅读 · 2 评论 -
C# 数值和字符串之间的相互转换
文章目录方法用例ToString()方法Parse()方法 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 方法ToString()方法:数值类型的 ToString()方法可以将数值型数据转换为字符串;Parse()方法:数值类型的 Parse()方法可以将字符串转换为数值型。用例ToString()方法int num = 25;string str = num .ToString();double dnum = 25.01;string原创 2020-10-15 11:14:59 · 3819 阅读 · 0 评论 -
C#数据类型转换—使用Convert类转换
文章目录简介用例 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 简介System.Covert类就是专门进行类型转换的类,Convert类提供的方法可以实现各种进本数据类型之间的转换。Convert类的常用方法如下表:方法说明ToBoolean将指定的值转化为等效的布尔值ToChar将指定的值转化为 Unicode 字符ToDateTime将指定的值转化为 DateTimeToDecimal将指定的值转化为原创 2020-10-15 11:03:38 · 2559 阅读 · 2 评论 -
C#decimal数据类型
文章目录 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 为适应高精度的财务和货币计算的需要,C#提供了十进制decimal类型。decimal类型数据特征如下表所示:数据类型含义取值范围有效数字位数decimal128位高精度十进制数表示法±1.0X10^-28 ~ ±7.9X10^287注意: 如果计算结果对精度要求非常高,如财务金融计算,就应该使用decimal类型,而不是浮点数据类型。这是因为decimal类型比浮原创 2020-10-15 10:41:00 · 5522 阅读 · 1 评论 -
C#浮点数据类型
文章目录 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 数据类型含义取值范围有效数字位数float32位浮点数±1.5X10^-45 ~ 3.4X10^387double64位浮点数±5.0X10^-324 ~ 1.7X10^30815 ~ 16注意: 浮点数有一定的取值范围和有效数字限制,超出规定范围的数据是无法表示的。float类型精度为7位有效数字,因此float的值经常会有些误差。例如,10减去0.9得原创 2020-10-15 10:28:12 · 2873 阅读 · 2 评论 -
C#整数数据类型
文章目录 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 数据类型含义取值范围sbyte有符号8位整数-128 ~ 127(-2^7 ~ 2^7-1)byte无符号8位整数0 ~ 255(0 ~ 2^8-1)short有符号16位整数-32768 ~ 32767(-2^15 ~ 2^15-1)ushort无符号16位整数0 ~ 65535(0 ~ 2^16-1)int有符号32位整数-21474原创 2020-10-15 10:13:03 · 312 阅读 · 0 评论 -
C#的两种类据类型:值类型和引用类型
目录什么是值类型,什么是引用类型概念:值类型和引用类型区别什么是值类型,什么是引用类型概念:值类型直接存储其值,而引用类型存储对其值的引用。部署:托管堆上部署了所有引用类型。引用类型:基类为Objcet值类型:均隐式派生自System.ValueType值类型:byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。引用类型:string 和 class统称为引用类型。值类型和引用类型区别1.值类型变量声明后原创 2020-10-14 14:13:06 · 117 阅读 · 0 评论 -
C#精准定时
文章目录简介StopWatch类例子1,用作延时例子2,用作算法耗时评估 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 简介我们在自动化上位机编写过程中,上位机的定时应用在很多地方。对于工业上位机程序设计起到非常关键的作用,比如:评估算法耗时;动作延时等等。那我们如何实现这一功能呢?C#为我们提供了一个StopWatch定时器,我们可以借助此定时器进行定时。有的人可能会问,为什么不用Sleep,因为这种延时方法定时精度差,并且会卡死线程与程序。最主要的原创 2020-10-12 13:34:29 · 2320 阅读 · 0 评论 -
C# 控件置于最顶层、最底层、隐藏、显示
C# 控件置于最顶层、最底层、隐藏、显示原创 2019-12-31 09:07:48 · 8364 阅读 · 1 评论 -
预处理指令(C#)
预处理指令简介#define、#undef#if、#elif、#else、#endif#warning、#error#region、#endregion#line、#line default#pragma原创 2019-10-19 11:16:34 · 362 阅读 · 0 评论 -
XML文档注释(C#)
XML文档编译器识别的标记添加XLM注释的方法添加XLM注释的例子目录XML文档编译器识别的标记添加XLM注释的方法添加XLM注释的例子XML文档C#可以根据特定的注释自动创建XML格式的文档说明。这些注释都是单行注释,但都以三条斜杠开头编译器识别的标记标记说明<C>把行中的文本标记为代码,例如<c>int i=10;</c><code>把多行标记为代码原创 2019-10-19 10:17:08 · 1090 阅读 · 0 评论