![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
文章平均质量分 61
cloproad
有空逛一逛~
展开
-
C#中泛型(中)
上一节介绍了泛型的声明和优点,下面着重介绍在类和方法中使用泛型。一、泛型类1、default 泛型可以作为方法的返回值,但是如果没有给泛型添加约束,则泛型可以是值类型或者是引用类型。那么方法的默认返回值就无法确定。而 default 关键字就可以用来解决这个问题。如 default(T),当T是值类型时,为默认值0,而当T是引用类型时,值是默认值 null。下面给出泛型类的声明:原创 2018-01-06 17:59:10 · 585 阅读 · 0 评论 -
C#中运算符的优先级
在运算符的使用过程中,免不了要去梳理运算符的优先级,防止计算出错。下面给出运算符的优先级排序表格:常用运算符的介绍和使用:点击打开链接对于需要二元运算符(需要两个操作数)来说,几乎所有的运算符都是左关联的,如:x + y + z 相当于 ( x + y ) + z。注意:(1)、赋值运算符是右关联的。(2)、要先考虑运算符的优先级,再考虑他们的关联性。int原创 2017-12-29 16:31:32 · 1131 阅读 · 0 评论 -
C#中运算符的介绍和使用
下面将介绍C#中的原创 2017-12-28 16:08:53 · 1670 阅读 · 0 评论 -
C#中委托(上)
委托原创 2018-01-23 13:51:10 · 256 阅读 · 0 评论 -
C#中抽象类和接口
一、抽象类:类是一个具有相同特征和行为的抽象,而抽象类(class 前加上 abstract)没有指出行为的具体细节,而由他的子类去实现相应的行为。注意:一个非密封类(密封类使用 sealed 修饰)可以派生子类,子类可以是抽象类或非抽象类。下面给出示例:public abstract class BB{ public int a; public void GetNum()原创 2018-01-07 20:56:01 · 10612 阅读 · 1 评论 -
C#中委托(中)
一、Action 与Func 除了使用自定义的委托之外,还可以使用 Action 与Func 委托,Action 定义了一个无返回值,参数是T类型的委托,非泛型Action表示无参数无返回值。Func表示有返回值的委托。使用时,返回值的类型在最后声明。下面给出示例:public class TestDele{ // 声明了有一个无参数无返回值的委托引用 public Actio原创 2018-01-24 19:19:12 · 1865 阅读 · 0 评论 -
C#中自定义索引器
C#原创 2018-01-17 11:19:23 · 4342 阅读 · 0 评论 -
C#中泛型(上)
泛型原创 2018-01-05 21:05:06 · 235 阅读 · 0 评论 -
C#中委托(下)
一、匿名方法在使用委托的过程中不必定义仅由委托使用的方法,可以使用匿名方法。声明:类似于方法的声明,不过参数列表前只有一个delegate关键字,没有其他修饰符、返回值类型和方法名。例如:delegate (int a){ }下面给出示例:// 声明了一个有两个 string类型的参数的委托,使用匿名方法替代了方法名实例化委托Action a = delegate (strin原创 2018-01-26 19:53:54 · 204 阅读 · 0 评论 -
C#中自定义类型转换
类型转换原创 2018-01-19 18:55:58 · 4253 阅读 · 0 评论 -
C#中自定义字符串格式
一、输出字符串的时候可以按照格式输出,数字的常用格式如下表所示: 下面给出示例:int a = 23;// 使用 String 类型的 Format 方法可以按照格式输出,并制定小数点之后的位数string result = string.Format("{0:f3}",a); // result = "23.000"string result1 = string.F原创 2018-01-28 20:45:43 · 3302 阅读 · 0 评论 -
C#中运算符重载
C#原创 2018-01-10 20:41:04 · 3643 阅读 · 0 评论 -
C#中方法重载
在方法的使用过程中,重载,重写和隐藏是常用到的。下面着重介绍方法的这些使用。1、重载重载是方法名不变,参数列表(参数类型或个数)不同的方法体现。注意:返回值可以相同也可以不同。当参数个数相同而参数类型不同的时候,可以考虑使用泛型,提高代码的复用性。下面给出示例:public class Func{ // 1、显示给出默认的构造函数,这点与结构体不同,结构体的默认构造不能原创 2018-01-02 20:51:24 · 8921 阅读 · 0 评论 -
C#中命名参数和可选参数
调用方法时,变量名不需要添加到调用中。比如有如下的方法用于移动矩形并在移动之后设置他的宽和高: public void MoveAndResize(int x,int y,int width,int height)有两种调用方式:1.MoveAndResize(10,20,30,40); 2.MoveAndResize(x: 10,y: 20,width: 30,height: 4原创 2017-12-20 17:01:37 · 4928 阅读 · 0 评论 -
C#中变量和常量
编写 程序离不开变量,下面将介绍:变量的声明、变量的初始化、变量的作用域、常量。一、变量的声明1、数据类型和变量名 : datatype identifier 如: int a ;注意:C#区分大小写,即 a 和 A 是两个不同的变量,可以在一行声明相同类型的多个变量,不能在一行指定不同类型的变量。// 可以在一行声明相同类型的多个变量,而不同类型需要多行int x原创 2017-12-25 15:19:11 · 1243 阅读 · 0 评论 -
C#中静态构造函数
使用静态构造函数的一个原因是:在第一次使用类之前,用静态构造函数来初始化类(当然也包括结构体,这里用类做阐述)中一些静态字段或属性。比如对字段或属性进行一系列的操作进行初始化,而不希望每次实例化类的时候改变他,用静态构造函数比较方便。public class MyClass{ static MyClass() { }}注意:静态构造函数没有访问修饰符,不能带任何参数,一个类只能有一原创 2017-12-22 16:29:37 · 4077 阅读 · 0 评论 -
C#中结构体与类的区分
在类的使用过程中,既不需要很多方法,也不需要从类中继承,为了提升性能,可以使用结构体来替代类。与类不同的是,结构体用struct 修饰;结构体中的实例字段不能自定义默认值,而类可以,编译器会隐式的给出结构体和类的默认构造函数,但是结构体的默认构造不能显示给出,不然编译器会报错,当类有自定义的构造函数时,默认构造会被隐藏,要想使用默认构造,必须显示给出;结构体的自定义构造函数必须初始化所有的实例原创 2017-12-23 15:46:35 · 6904 阅读 · 0 评论 -
C#中只读成员
只读成员包括只读字段和只读属性。如果不希望在初始化后修改数据成员,就可以把他们变成只读成员。1、只读字段介绍:声明时使用 readonly修饰,放在类型前,与 static 可以更换修饰顺序,只能在构造函数中分配值。区分:实例字段,静态字段,只读实例字段,只读静态字段,常量public class MyClass{ // 实例字段,可以在类的外部改变他的值 publi原创 2017-12-22 17:23:04 · 3580 阅读 · 0 评论 -
C#中基本类型转换
下面介绍C#中的类型转换。原创 2017-12-30 20:44:07 · 1895 阅读 · 0 评论 -
C#中部分数组ArraySegment<T>
结构体ArraySegment表示数组的一段,如果需要使用不同的方式去处理一个大型数组的不同部分,一个有效的方法是使用部分数组来代替创建多个数组。首先来看一下构造:他是一个结构体(这里给出经常用到的部分),在 System 命名空间下,包括两个自定义构造方法,三个只读属性。// 泛型结构体 ArraySegmentpublic struct ArraySegment{ // 构造方法原创 2017-12-26 15:48:37 · 10573 阅读 · 2 评论 -
C#中复制数组
因为数组是引用类型,所以将一个数组变量赋值给另一个数组变量后,这两个引用会指向同一个数组对象,因此对一个数组进行改变会影响到另一个数组的结构。而复制数组会创建一个数组的副本(浅表副本)。两种方式:1、实例方法:a.Clone(); 2、静态方法:Array.Copy(...);1、 数组的元素是值类型对复制数组或原数组的修改不会影响到另一个数组,他们除了值一样,其他互不相干。如下原创 2017-12-21 15:28:53 · 13209 阅读 · 0 评论 -
C#中泛型(下)
上一节介绍了泛型类和泛型方法,下面着重介绍泛型接口。接口:表示纯粹抽象的行为,不能有构造函数和字段,成员是隐式公有的(不能使用修饰符),接口名一般以大写字母 I 开头。注意:虽然接口不能实例化,但可以声明接口类型的变量并使用实现接口的非抽象类或结构体实例化(抽象类可以使用非抽象子类实例化)。泛型接口:在接口名后面加上 声明,也可以在后面添加约束。1、方法的协变与抗变协变:方法原创 2018-01-07 20:06:25 · 212 阅读 · 0 评论 -
C#中对象的相等性
下面介绍原创 2018-01-01 20:52:41 · 922 阅读 · 0 评论 -
C#中可空类型
可空类型:在值类型后面加上?,就可以将 null 赋值给值类型。声明方式:datatype? 如,int? a = null;值类型与引用类型的一个重要区别是:引用类型可以为空,值类型不能。而某些特殊情况(如把C#中数字映射到数据库类型时,数据库的数字可以为空),此时对于大量的数据使用引用类型会增加GC(垃圾回收器)的工作,影响性能。因为只需要在值类型的基础上加上一个 null 值,所原创 2017-12-27 15:47:13 · 1284 阅读 · 1 评论 -
C#中数组的排序
Array 类是一个抽象类,是所有数组的基类。用方括号表示数组会创建一个派生自 Array 类的新类,这个类可以使用 Array 类定义的方法和属性。下面说一下数组的排序。 Array 有一个静态方法给数组元素排序,该种元素类型必须实现 Icompare 接口。而简单类型(如 int,string 类型,他们已经实现了该接口,可以直接使用 sort 方法进行排序)。下面给出示例:pub原创 2018-02-26 17:20:59 · 16270 阅读 · 0 评论