C#
gubaofu
这个作者很懒,什么都没留下…
展开
-
C# Thread启动线程时传递参数
转载:https://www.cnblogs.com/Liyuting/p/9087216.htmlC# 往线程里传参数的方法总结Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托。Thread (ThreadStart) 初始化 Thread 类的新实例。由 .NET C...原创 2020-03-04 13:56:19 · 17342 阅读 · 0 评论 -
C# overload重载 override重写 区别
1、overload(1)overload 即 重载,就是函数名相同,函数参数不同,和C++中的重载一样,没什么需要多说。(2)举例:// overload:重载,函数名相同,参数不同。public string ToString(){return "a";}public string ToString(int id){return id.ToString();}2、overr...原创 2020-02-02 11:23:31 · 500 阅读 · 0 评论 -
C# HashTable和HashMap
https://blog.csdn.net/WuLex/article/details/88239424在.Net模仿java的过程中抛弃了HashMap,所以以后再去面试.Net的时候当别人问你HashTable和HashMap的区别的时候,请告诉他,C#.Net 中 没有HashMap...转载 2020-02-01 17:32:06 · 640 阅读 · 0 评论 -
C# 扩展方法
参考:https://www.w3cschool.cn/csharp/csharp-extension-methods.html1、C# 扩展方法扩展方法可以用新方法扩展现有类型改变原始类型的定义,也就是说,可以给已经定义好的类型添加额外的方法,可以像成员方法一样调用。扩展方法是静态类的静态方法,其中this修饰符应用于第一个参数。第一个参数的类型就是扩展的类型。例如:// ...原创 2020-02-01 15:59:02 · 442 阅读 · 0 评论 -
C# unsafe不安全代码
1、C#不安全代码:当一个代码块使用unsafe修饰符标记时,C# 允许在函数中使用指针变量。不安全代码或非托管代码是指使用了指针变量的代码块。补充:什么是受管制(托管)的代码?托管代码是运行.NET 公共语言运行时CLR的代码。unsafe:非托管代码,不经过CLR运行,程序员自行分配和释放内存空间。2、在同一个声明中声明多个指针时,星号*仅与基础类型一起写入;而...转载 2020-02-01 11:47:52 · 677 阅读 · 0 评论 -
C# 匿名方法
1、匿名方法:匿名方法(Anonymous methods)提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。语法举例:delegate void NumberChanger(int n);...NumberChanger nc = delegate(int x...原创 2020-02-01 11:25:58 · 304 阅读 · 0 评论 -
C# Generic泛型
泛型特点:重用代码(使用泛型的目的)。 保护类型的安全(没有object对象的强制类型转换)。 提高性能(对比object对象的装箱拆箱)。 创建泛型集合类。.NET 框架类库在System.Collections.Generic空间中包含了一些泛型集合类。可用来替代System.Collections中的集合类。 创建泛型接口和类、泛型方法、泛型委托和事件。 可以对泛型类进...原创 2020-02-01 11:08:36 · 136 阅读 · 0 评论 -
C# Collection 集合
集合类型有:(1)数组、动态数组(ArrayList)、列表(List<>);(2)哈希表(Hashtable)、排序列表(SortedList);(3)堆栈(stack)、队列(queue);(4)点阵列(BitArray)。(5)泛型集合:(命名空间:System.Collections.Generic) List<>、HashSet&l...原创 2020-01-17 23:27:01 · 584 阅读 · 0 评论 -
C# interface 接口
C# interface 接口接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 “是什么” 部分,派生类定义了语法合同 “怎么做” 部分。接口内可以定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口和抽象类区别:在某种程度上抽象类与接口类相似,但抽象类用在只有少数方法由基类声明由派生类实现的情况。接口 注意:接口方法不...原创 2020-01-14 19:23:00 · 160 阅读 · 0 评论 -
C# Class 类
C# Class 类参考:https://www.w3cschool.cn/csharp/csharp-polymorphism.htmlabstract 抽象用关键字 abstract定义抽象类,用于提供接口的部分类的实现。只定义不实现。当一个派生类继承自该抽象类时,实现即完成。抽象类包含抽象方法,抽象方法可被派生类实现具体功能。注意,下面是有关抽象类的一些规则:不能创建...原创 2020-01-14 19:06:17 · 362 阅读 · 0 评论 -
C# Array 数组
C#数组 Array参考文档:https://www.w3cschool.cn/csharp/csharp-array.html多维数组多维数组又称为矩形数组,本质是一个一维数组的列表。可使用Rank获取数组的维度(数组的秩)。语法:// 声明并初始化一个3x3的二维数组int[,] arr = new int[3, 3] { { 0, 0, 0 }, { 1, 1, 1 },...原创 2020-01-14 13:31:13 · 373 阅读 · 0 评论 -
C# 注释 // 和 /// 的区别
C# 引入了新的 XML 注释,即我们在某个函数前新起一行,输入 ///,VS.Net 会自动增加 XML 格式的注释。 // 不会被编译,而 /// 会被编译,所以使用 /// 会减慢编译的速度(但不会影响执行速度)。 但使用 /// 会在其它的人调用你的代码时提供智能感知。...转载 2020-01-13 16:21:04 · 2704 阅读 · 0 评论 -
C# struct 结构体
参考:https://blog.csdn.net/zeroflamy/article/details/52081462https://www.w3cschool.cn/csharp/csharp-struct.html1、C# 结构的特点1. C#中struct结构体是一个特殊的存在,值类型、栈内拷贝(值类型栈内拷贝决定了struct许多使用特点类似int)。2. C# 中的结构与传统...转载 2020-01-14 17:03:45 · 2012 阅读 · 0 评论 -
C# Event 事件
参考:https://www.runoob.com/csharp/csharp-event.html1、 理解:(1) 事件就是带有event关键词的委托实例(事件是委托的一种应用方式)。(2) 事件是类中的一种成员类型,类似类中的属性、方法。也就是事件只能在类中定义。(3) 事件应用: 1.一个用户操作,如按键、点击、鼠标移动等等。 ...原创 2019-12-29 22:40:32 · 290 阅读 · 0 评论 -
C# Delegate 委托
https://www.runoob.com/csharp/csharp-delegate.html1、 解释:(1) 委托(Delegate)一种引用类型变量,是对某个方法的引用的。可以看做一个“函数包装”,把函数包装成对象用来传递。(2) 类似 指向方法的指针,所以引用的方法可在运行时被改变。(3) 委托(Delegate)用于实现事件和回调方法。(4)...原创 2019-12-29 18:17:51 · 148 阅读 · 0 评论 -
C# Reflection 反射
参考:https://www.runoob.com/csharp/csharp-reflection.html1、 定义:(1) 反射指程序可以访问、检测和修改它本身状态或行为的一种能力。(2) 程序集包含模块,而模块包括类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。2、 优缺点:(1) 优点:01. 它允许程序创建和控制任何类的对象,无需提前硬编...原创 2019-12-29 16:50:19 · 152 阅读 · 0 评论 -
C# Attribute 特性
参考:https://www.w3cschool.cn/csharp/csharp-attribute.html理解:特性就是一个标签,可以给程序中的元素添加一些信息,在程序运行时就可以访问元素的这些信息,程序就可以通过这些信息进行其他操作。当然特性在编译期就存在了,所有编译器也可以通过这些特性信息进行条件编译。1、定义: (1) Attribute是用于 在编译或运行时...原创 2019-12-29 14:17:33 · 245 阅读 · 0 评论 -
C# delegate委托 event事件 区别
转载:https://blog.csdn.net/lrfleroy/article/details/88780590C# delegate委托 和 event事件的区别理解:1、区别:(1)delegate委托和event事件不是一个层面的东西,delegate用来声明委托类型,event用来声明委托对象(此时委托对象就是事件)。(2)事件是委托的一种应用,事件是带有event关键...转载 2019-12-28 16:24:18 · 747 阅读 · 0 评论 -
C# vs 2017 代码自动补全 TAB+TAB
可使用TAB+TAB 自动补全代码的关键字列举:if 、else、switchfor、foreachdo、whileclass、enum、interfaceusing+ Tab +Tab输出 using代码块try +Tab+Tab 输出 try catch代码块tryf + Tab + Tab ...转载 2019-12-27 17:39:11 · 1983 阅读 · 0 评论 -
C#字段和属性
一、字段1.关于字段a.字段又称为:“成员变量”,一般在类的内部做数据交互使用。b.字段命名规范:camel命名法(首单词字母小写)。2.通俗的理解:私有化:字段就好比我们的个人财产,仅供个人使用,所以一般是private修饰。添加标准:根据程序的功能需求,具体来添加需要的不同类型的字段。二、属性1.属性的使用作用:在面向对象设计中主要使用属性描述对象的静态特征...转载 2019-12-27 17:35:02 · 347 阅读 · 0 评论 -
C# 可空类型 Nullable 可空? 空合并?? 空检查?.
C# 可空类型https://www.w3cschool.cn/csharp/csharp-nullable.htmlhttps://www.runoob.com/csharp/csharp-nullable.html1、C# 可空类型(Nullable)(1) Nullable 类型(可空类型)是C# 中一个特殊的数据类型,可空类型表示其基础值类型正常范围内的值,再加上一个 n...原创 2019-12-27 16:41:44 · 238 阅读 · 0 评论 -
C# 方法 参数传递
C# 方法https://www.runoob.com/csharp/csharp-methods.html参数传递:三种方式:值参数、引用参数、输出参数。(相对C++增加了输出参数)引用参数使用关键字ref。输出参数1、使用关键字out2、返回多个值:return 语句可用于只从函数中返回一个值。但是,可以使用 输出参数 来从函数中返回两个值。输...原创 2019-12-27 16:10:36 · 404 阅读 · 0 评论 -
C# internal 封装
C# internal 封装https://www.w3cschool.cn/csharp/csharp-encapsulation.html1、面向对象语言的特性:封装性。2、访问修饰符:Private、protected、public、internal、protected internal。3、类成员默认访问修饰符是private,类默认访问修饰符是internal。4...原创 2019-12-27 15:56:01 · 405 阅读 · 0 评论 -
.NET、C#和ASP.NET的区别
.NET、C#和ASP.NET三者之间的区别如下:.NET是一个平台,C#是一种编程语言,ASP.NET是一种应用模型。具体分析如下:一、什么是.NET?.NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(.NET框架)是.NET程序开发和运行的环境,在这个平台下可以用不同的语言进行开发,因为.NET是跨语言的一个平台。语言可以是C#,f#,j#,vb....转载 2019-12-26 17:38:38 · 245 阅读 · 0 评论 -
C# 多线程
C# 多线程博客:https://www.cnblogs.com/wyt007/p/9486752.html转载 2019-12-24 16:08:41 · 71 阅读 · 0 评论 -
C#中使用指针
首先在工程属性中设置允许不安全的代码: 然后在使用指针的地方加上unsafe修饰符unsafe{ //使用指针的代码}// 或者unsafe int FunName(int x,int y);最后如果需要固定某些变量,那么要加上fixedfixed (int* p = var){ //code}...原创 2019-11-26 12:06:32 · 156 阅读 · 0 评论 -
C#调用C++程序方法
方法一:标准动态库调用先使用C++代码生成动态库dll;然后在C#中使用下列方式调用:using System.Runtime.InteropServices;[DllImport("xxx.dll", CallingConvention = CallingConvention.Cdecl)]extern static int FunName(int a, int b);...原创 2019-11-26 11:49:30 · 2550 阅读 · 0 评论 -
控制WinForm中右键菜单
方法一:给需要添加右键菜单的控件设置ContextMenuStrip属性,如给dataGridView1添加菜单方法为: this.dataGridView1.ContextMenuStrip = this.contextMenuStrip1;这样做右键菜单自动添加,也无需设定菜单的位置,只要在控件上单击右键,即可在鼠标处弹出菜单这样做的缺点有两个:第一个,不能在控件的指定位置弹出菜单,因转载 2017-08-30 10:40:48 · 4765 阅读 · 0 评论