C#基础
C#基础
cfqq1989
误引雷$藏
展开
-
c#值类型转换(类型转换,格式显示)
小写16进制显示 : num.ToString("x4");//补0 4位长度的小写16进制。这个一般用于类似串口这样的设备, 串口每次帧是 8bit的数据,这样字符串需要转换成8bit的数组才能批量发送。其他转换,我目前还没有用到。原创 2022-10-12 22:50:53 · 2116 阅读 · 9 评论 -
C#属性的几种写法
【代码】C#属性的几种写法。原创 2022-09-05 14:34:25 · 1059 阅读 · 0 评论 -
封装,继承,多态(C#)
封装:将对象的属性和行为封装起来,载体为类。讲人话就是:物以类聚,描述这个类用值类型和行为来表示这个类。(比如人类,手脚的数量还有衣服颜色用值类型表示,跑步这种行为用方法表示)类描述好后,就可new出具体的对象了。类:字段,属性,构造方法,自定义方法 组成继承:拿来主义,减少重复的工作。讲人话就是:汽车有发动机,把发动机继承给汽车。这样汽车在设计的时候就不需要再去重复设计发动机了。也可以覆盖发动机(子类的方法签名和父类一样,但访问权限需要大于父类。称为重构)多态:依赖于抽象类和..原创 2022-05-19 10:47:39 · 1075 阅读 · 3 评论 -
class类(手把手教你)C#入门基础
class 类是namespace下最小的成员单位;class是对象,是一种思想。解决生活中的问题。先有汽车图纸,然后再造出汽车。byte num;是内存开辟8个bit。学生对象张三=new 学生对象();开辟的内存大小由 学生类型 决定。这句就是造出了一辆车;我们称它为实体对象。我们经常把一个对象的值给另一个对象(把对象当参数一样传递),或者调用对象的方法。(就好比这辆车,我可以按喇叭苏D_LV977.喇叭();)我们也可以把其他车的激光大灯拆下来给这辆车。(赋值操作)原创 2022-05-10 03:41:17 · 2941 阅读 · 3 评论 -
string字符串【C#】
对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。原文链接:https://blog.csdn.net/sinat_40003796/article/details/124960531。注:动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。//7 带格式的字符串转。原创 2021-10-17 20:17:18 · 1267 阅读 · 1 评论 -
双色球案例【C#】
C#入门案例原创 2024-05-06 23:03:11 · 416 阅读 · 0 评论 -
C#基础复习
同名不同班级的2个学生。用完全限定名来区分实例类型。原创 2024-03-30 00:16:17 · 466 阅读 · 1 评论 -
索引器【C#】
1。原创 2023-12-02 18:58:55 · 206 阅读 · 0 评论 -
正则表达式【C#】
0-9]+ 匹配出数字。1文本匹配(验证字符串)原创 2023-11-29 15:09:48 · 1667 阅读 · 4 评论 -
方法签名【C#】
方法名称,参数个数,参数类型及顺序原创 2023-11-23 22:24:16 · 531 阅读 · 0 评论 -
static静态【C#】
这个静态不是太好讲解。原创 2023-11-21 21:48:03 · 98 阅读 · 0 评论 -
struct结构体【C#】
C#中的结构体很少用,一般用class。结构体是值类型传递。原创 2023-11-17 17:31:22 · 272 阅读 · 0 评论 -
位段【C#】
【代码】位段【C#】原创 2023-11-14 11:37:05 · 99 阅读 · 0 评论 -
C# 关键字
abstract 抽象。原创 2023-02-14 03:16:03 · 225 阅读 · 0 评论 -
指针的学习
第1*号是 取值(取内存坐标值),第2*号是左值类型值(强制类型转换)。0x40020010是地址,data是给左值赋值用的,在地址0x40020010上赋值。先*0x40020010指向这个地址坐标,然后 data转换成volatile int类型,赋值。原创 2023-02-10 02:17:51 · 237 阅读 · 0 评论 -
构造方法C#详解
构造方法的作用就是new的时候初始化这些属性。使实例的属性值按要求,批量修改。写好class后经常new出实例对象。每个实例对象属性值都一样。就像女人的肚子,按照种子生产。利用构造方法的参数。在new的时候还可以使用,初始化器批量设置属性。数量多的话用参数表,在构造方法传参数表。原创 2022-10-28 01:27:59 · 127 阅读 · 0 评论 -
try catch finally错误处理C#
catch (Exception ex)内如果是空的话,就代表忽略这个错误。程序经常写错,想查看那部分错了。可以用代码限制,找出错误位置。原创 2022-10-22 18:57:36 · 713 阅读 · 1 评论 -
LINQ在C#中的使用方法
cs是传进去的参数名字,可随意命名,这参数的类型是元素的类型。在集合中找出满足条件的元素。就是说,在这个集合内,找出 名字叫 维修电工的对象出来,给。查询数据内的数据对象。一般是在集合中找出单个元素对象。在成绩表中,找出张三这个对象。是用 delegate 类型。时,上层的对象也会跟着改变。那就要用莱姆达写个条件方法。对象是引用类型,当你修改。转载 2022-10-15 04:13:17 · 1081 阅读 · 0 评论 -
Lambda详解 => {C#莱姆达表达式}
存在的意义。原创 2022-10-15 03:20:30 · 1010 阅读 · 0 评论 -
C#的方法
5: out和ref是一样的作用,区别是在用之前可以不初始化。类对象在用之前是需要new初始化的。6: params是参数是类似于数组,参数不确定具体的数量,只确定参数的类型。4:ref是利用对象是引用类型的特点,对参数的修改,直接影响上层的对象值。7:参数嵌套,3个参数的可以套2个参数的重名方法。1:没有参数时,可以省略不写,或者加 void。3: 参数尽量用 对象来传递。,调用时可以不填b的值。原创 2022-10-04 23:41:16 · 213 阅读 · 3 评论 -
StringBuilder用法( C# )
这个和string唯一的区别是。string每次修改都会开辟新内存。这StringBuilder只在固定内存地址上修改。这样速度比string快很多。StringBuilder str_接收事件记时 =new StringBuilder( string.Format("{0,9}", DateTime.Now.Second.ToString() + "秒" + DateTime.Now.Millisecond.ToString() + "ms:")); //固定长度9 右对齐字符串,串联不支持用 +原创 2022-06-06 20:51:28 · 497 阅读 · 0 评论 -
params ref out in 方法的参数
上层调用下层方法,上层给实参,下层用形参接收数据。 参数可以是对象,默认形参再怎么修改都不会影响到上层实参的值。想让实参作为引用类型,这样下层行参的值改变后,上层的实参值也跟着改变,那么参数的类型修饰就要加 ref 锁定为引用,且必须初始化。void f_引用方法(ref int data){ data=5;}//这样上层的调用者,实参的值也会变成 5 然后,上层给的实参数量不确定个数,一般是数组或者集合。这样下层的参数就需要用 params 来修饰。..原创 2022-05-13 21:59:31 · 149 阅读 · 0 评论 -
List< T > 集合(手把手教你)
Count // 返回对象数量是在动态数组的基础上做的升级,用于解决和。原创 2021-09-27 10:39:03 · 4941 阅读 · 3 评论 -
Dictionary < K , V > 字典
就好比数组的下标,但是数组的下标只能是数字,而这个下标可以是任意值类型。一般用string和int的比较多。跟飞机的乘客名单一样,一个名字对应一个人;跟饭店的菜单一样,点什么菜名就上什么菜。先是从字典获取值对象。对象实际是List的集合,可以求平均数。Dictionary < 键 , 值 > 字典。同样没有限制类型,一般以对象为主。字典[className].Average()就和键盘一样,按下 键 就能得到对应的值。值是List类型,可以求平均数。作用:用简单的类型,管理复杂的对象。原创 2022-05-12 01:28:14 · 255 阅读 · 2 评论 -
namespace 命名空间
namespace是C#里最大的关键字就像象棋的棋盘,那棋子是什么呢?棋子就是class类。所以,一个类内可以定义多个classnamespace 棋盘{ class A {} class B {} class 兵 {} class 马 {} class 炮 {} class 車 {}}namespace内最小单位就是class所以原创 2022-05-10 02:54:29 · 282 阅读 · 0 评论 -
C#新线程延时
开启一个新线程;在这个线程中,进行任务排队。任务1完成后,等待延时200ms,再运行任务2 private void Timer1_Tick(object sender, EventArgs e) { //throw new NotImplementedException(); Task.Run(() => { this.Invoke( n原创 2022-04-25 00:02:19 · 1174 阅读 · 1 评论 -
C# GDI 的使用
1先创建画图的对象Graphics g = this.pictureBox1.CreateGraphics();Graphics g = this.pictureBox1.CreateGraphics();2绑定绘图的容器,比如在主窗体上绘制Graphics g = this.CreateGraphics();3有了绘图对象,还需要画笔。(就比如有了绘画师这个人,还需要有个画笔才能画图画)新建一个画笔Pen myPen = new Pen(Color.Red);4下面就原创 2022-01-13 21:18:39 · 754 阅读 · 0 评论 -
C#键盘值
{ // // 摘要: // 指定键代码和修饰符。 [ComVisible(true)] [Editor("System.Windows.Forms.Design.ShortcutKeysEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))] [Flags] [TypeCon...翻译 2022-01-12 02:13:59 · 940 阅读 · 0 评论 -
集合中找出元素 foreach in is as
集合就跟仓库货架一样。相同类的货物肯定靠近了放置。以窗体为例:这个窗体有组件和控件。控件有按钮,文本框等等。找东西肯定是 this.控件.按钮.按钮编号.属性=设定值;这this是什么? this就是这个大仓库。它里面有很多东西。控件这个货架怎么表示? 窗体的控件都要加载到一个Controls这个容器里,才能显示出来。这控件容器就是 this.Controls找到了这容器,就可以去翻一翻它里面有什么东西了 用foreachforeach(var item ...原创 2021-12-16 22:33:16 · 285 阅读 · 0 评论 -
C# 什么是 Class类与对象
在namespace下定义类表示某个对象;//比如人类对象表示用字段,属性,和方法。(字段是int,bool,char等值类型)(属性是get,set的vaule,用于年龄不能为负数,是带有方法功能的值)(方法是表示对象的行为能力)类是引用类型。User b=a;或User b=new User();b=a; //b和a将被绑定,修改b就是修改a,且b=null;a不会消失。子类之间只要没用过 = 那么子类的成员之间赋值不会被影响。类指对象,把字段,...原创 2021-12-15 23:04:58 · 358 阅读 · 0 评论 -
C#枚举Enum
comboBox3.DataSource =Enum.GetNames(typeof(Parity));//绑定枚举参数Parity c3 = (Parity)Enum.Parse(typeof(Parity), comboBox3.SelectedItem.ToString(), false);//校验位原创 2021-12-12 08:53:27 · 395 阅读 · 0 评论 -
C#委托 解决跨线程报警
1委托和房产中介的作用是一样的。2委托和c语言的函数指针差不多。但c语言的函数指针给了函数地址后,只能调用一次。不能像数组那样绑定多个函数地址。C#的委托却可以。3你可以理解委托是C语言 函数指针的 升级版4 委托是变量,它的数据类型是方法。 int num=33; 那num是int类型。委托是方法类型;理解房产中介的交易,你就能学会怎么使用委托了。1中介就是委托 delegate 这个对象就是在他们2个人都认识的地方,那肯定就在公共区域,同一个namespace下定义委托;主窗体和子.原创 2021-11-26 14:27:51 · 776 阅读 · 0 评论 -
C#数据类型
数据来源于生活。有值类型的和非值类型的。值类型来源于进制。比如八卦 :表示硬币反面,I表示硬币正面。用3个硬币表示数大小。有 : : : 到 I I I 一共8个最早是用绳子记数,绳子打结和不打结。拿4个硬币,利用正反面排序,可用得到16种情况,反反反反,到,正正正正。所以有多少个元素,就是多少进制。在一个圆盘上写多少个元素,就是多少进制。比如时钟是12个元素,就是12进制。再比如写0123456789是十个元素,所以是十进制。那八卦是3个硬币表示的,从 反反反 到 正...原创 2021-11-14 09:42:18 · 268 阅读 · 0 评论 -
C#数据类型转换,电工专用
// 任何值转成显示的字符串 private void 值转字符串(object sender, EventArgs e) { int data = 255; // 任何值转成显示的字符串 listBox1.Items.Add(data.ToString());// .ToString()任何值转成可以显示的字符串 }//字符串转数值原创 2021-07-13 18:59:02 · 254 阅读 · 0 评论 -
Winform的使用
//==============按键设置label1的显示 private void button1_Click(object sender, EventArgs e)//按钮1事件 { setLab(); } public void setLab()//设置label1的显示 { label1.Text = "按键调用"; } }//=======原创 2021-06-26 16:47:39 · 170 阅读 · 0 评论 -
BeginInvoke入门
用于 方法类 的异步调用。与普通调用的区别:普通方法的调用是主线程运行。比如delay_us(1000);主线程会等待该方法运行完再执行下一个方法。BeginInvoke是用其他线程去运行方法。就像让秘书去工作,自己的工作不会受影响。既然是方法的异步调用,那就要先声明一个方法。//AsyncCallback Func<double, double, double, string> cnc = (X, Y, Z) => { ...原创 2021-06-23 01:55:06 · 291 阅读 · 0 评论 -
System.InvalidOperationException:“线程间操作无效: 从不是创建控件“label1”的线程访问它。”
新手在编程时,会遇到跨线程报警。(如用按键去修改textbox数据会报错)掩耳盗铃的做法是:Control.CheckForIllegalCrossThreadCalls = false;正确做法是用委托;委托怎么理解?就好比要结婚,男方和女方之间不认识。虽然你不知道老婆叫什么,但你的要求是明确的。老婆的身高体重学历收入相貌这些条件。那就需要一个媒人。这个媒人就是委托,她满足双方都认识这个条件。既然双方都认识这个委托,那这个委托就要在2人的公共区域里定义。也和房屋中介一样。入门级的用法如原创 2021-06-21 23:42:58 · 847 阅读 · 0 评论