![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#中级篇
文章平均质量分 61
Lymon_z
本博客里的文章均是在网上学习后所做的笔记,并非原创,如有版权问题概不负责。
展开
-
面向对象编程-定义类
为什么使用面向对象编程?程序员为了让程序更加清晰,把程序中的功能进行模块化划分,每个模块提供特定的功能,而且每个模块都是孤立的,这种模块化编程提供了非常大的多样性,大大增加了重用代码的机会。面向对象编程也叫OOP编程。类类创建的变量叫做对象,实际上类是创建对象的模板,每个对象都包含数据,并提供了处理好访问数据的方法。类定义了类的每个对象(称为实例)可以包含什么数据和功能。那如何去创建一个类?clas原创 2017-09-22 17:37:59 · 612 阅读 · 0 评论 -
使用泛型来创建我们自己的列表
在前面我们知道在C#中有一个List类,可以存储长度不限的数据。列表是使用了泛型来创建的,那我们可以通过泛型来创建自己的一个列表,这样我们能够对泛型和列表有个更深刻的了解。首先,我们知道列表其实就是一个数组,只不过构造的时候不需要指定长度,那么我们首先要定义一个泛型数组和其中元素个数的变量。class MyList<T> where T:IComparable { priva原创 2017-09-27 10:40:46 · 329 阅读 · 0 评论 -
泛型
泛型是什么 泛型是程序设计语言的一种特性,它通过参数化类型来实现在同一份代码上操作多种数据类型。利用参数化类型将类型抽象化,从而实现灵活的复用泛型类 当定义一个类的时候,这个类的某些字段的类型可以是不确定的,这个类就叫做泛型类,这些类型可以在类构造的时候确定。 例如:class ClassA<T> { private T a; private T b;原创 2017-09-26 09:38:02 · 181 阅读 · 0 评论 -
抽象类与密封方法
抽象类在上一篇文章里,我们知道基类里的函数能够被重写,那么要是在一个程序里,他的函数在每个子类里全部都要被重写,该基类的函数可不可以不去实现,只定义一个函数呢? 我们可以定义一个抽象函数,抽象函数只有函数定义没有函数体,可以说抽象函数本身也是虚拟的virtual(只有函数,没有函数体实现)当一个类里有抽象函数的时候,这个类也必须是抽象类,抽象类不能实例化,但是抽象类可以同时有普通函数和抽象函数。原创 2017-09-25 17:27:37 · 344 阅读 · 0 评论 -
泛型之列表的创建和使用
在前面,我们需要存储很多类型一样的数据的时候,我们一般都使用数组来存储并且管理,但是数组有个缺点就是数组的大小是固定的,那么当我们不确定数据的个数的时候,该怎么存储呢? 我们可以使用集合类来进行存储数据,列表List就是集合类的一种。我们可以使用列表很方便的添加、删除数据以及其他的操作。列表的创建 列表可以存储任何类型的数据,在创建列表对象的时候,我们首先要指定要创建的这个对象要存储什么类型的(原创 2017-09-25 22:18:14 · 571 阅读 · 0 评论 -
定义和实现接口
接口在继承中我们讲到了接口,那么如何去定义和实现一个接口呢?定义一个接口在语法上和定义一个抽象类完全相同,但是不允许提供接口中任何成员的实现方式。 语法规则定义接口(飞翔)public interface IFly{ public void Fly();}实现接口public class Type1Enemy:IFlyHandler{}如果有同时继承多个接口,那么就用逗号隔开接口名。原创 2017-09-25 20:10:09 · 4478 阅读 · 0 评论 -
派生类的构造方法以及修饰符的作用
派生类的构造方法在学习如何定义类的时候,我们学会了定义类之后如何使用构造方法来初始化对象。在继承关系中至少有两个类,那么是使用父类还是子类的构造方法来初始化对象呢?在子类中调用父类的默认构造方法(无参)public class MyDerivedClass{ public MyDerivedClass:base(){ //do something }}在这里base原创 2017-09-25 19:47:06 · 489 阅读 · 0 评论 -
关于继承里的虚方法和隐藏方法
在继承里,我们知道子类拥有父类的方法,那么如果子类需要的方法和父类的有一些区别,想要修改一下要怎么做呢?C#里有两种重写的方法:虚方法和隐藏方法。虚方法 在基类中,将函数声明为virtual,这个函数就叫做虚方法,可以在任何派生类中重写该函数。该函数不能有private、static、abstract关键字。 语法规则class MyBaseClass{ public virtual s原创 2017-09-24 13:00:43 · 626 阅读 · 0 评论 -
面向对象编程-继承
继承在前面我们学习了如何去定义类,用类当做模板来声明我们的数据。那么当我们的程序需要很多个类,但是这些类有很多相似的字段和方法,我们也要一个个重新去定义吗? 我们可以使用继承,将相同的方法和字段放在一个基类里,有不同的字段或方法就写在派生类,继承基类。实现继承 表示一个类型派生于一个基类,它拥有该基类的所有成员字段和函数。在实现继承中,派生类型采用基类的每个函数的实现代码,除非在派生类的定义中指原创 2017-09-24 11:16:58 · 186 阅读 · 0 评论 -
匿名类型&&堆和栈
匿名类型在前面的代码中,我们创建变量(对象)的时候,都指定了变量的类型,但是我们也可以不去指定类型,这个就叫做匿名类型。我们可以使用var声明一个匿名类型,匿名类型初始化的时候,这个变量的类型就被确定下来了,并且之后不能够在被修改。static void Main(string[] args) { int i = 100; var j原创 2017-09-23 15:56:09 · 454 阅读 · 0 评论 -
关于VS中的错误处理和调试
关于错误和调试的基本概念错误 语法错误:比如变量名错误等,导致编译器无法编译,编译器能够实时报错//语法错误,变量名出错 int temp = 235; tem = 43; 语义错误(逻辑错误):逻辑在某些方面有瑕疵,会导致结果和预想中的不一样,但是能够编译成功,编译器不会报错//逻辑错误,结果与预期的不同 int原创 2017-09-22 11:33:06 · 5582 阅读 · 0 评论