随笔分类 -  C#

摘要:委托是一种可以把引用存储为函数的类型。通俗来讲就是一个能存放符合某种格式(方法签名)的方法指针的容器。委托的声明制定了一个返回类型和一个参数列表。在定义了委托后,就可以生命该委托类型的变量。接着把这个变量初始化为与委托有相同返回类型和参数列表的函数引用。之后,就可以使用委托变量调用这个函数,就像该变 阅读全文
posted @ 2016-03-15 23:32 Chen_Weifeng 阅读(278) 评论(0) 推荐(0)
摘要:接口就是一个抽象类,只不过它里面只能声明抽象成员。微软认为接口就是一个规范,只说不做,那么就以为接口的成员必须由“子类”来实现,也就以为这接口中的成员必须是公共的和抽象的。 使用父类实现多态,那么实现多态的子类对象需要同一族群,所以必定会有共同属性。如果只是有共同的行为,但是却不是同一族群的... 阅读全文
posted @ 2015-09-16 23:37 Chen_Weifeng 阅读(166) 评论(0) 推荐(0)
摘要:一、虚方法和抽象方法的区别: 1、虚方法必须有实现,抽象方法必须没有实现 2、抽象方法必须在抽象类中声明,虚方法可以出现在抽象类中 3、抽象方法必须在子类中重写,虚方法可以被重写 4、虚方法可以在普通类中。抽象方法必须在抽象类中。二、什么时候用虚方法?什么时候用抽象方法? 2.1、什么时候... 阅读全文
posted @ 2015-09-16 23:20 Chen_Weifeng 阅读(316) 评论(0) 推荐(0)
摘要:类更多是规范,我只告诉你你需要做,具体怎样做是子类自己去实现----规范 抽象方法只能在抽象类中--如果不在抽象类,那么调用方法的时候却没有实现。一、 父类也不知道子类到底如何实现,它只是告诉子类必须去实现。abstract 抽象的:一种概念,一个声明,它是没有任何实现的 抽象方法必须在抽象... 阅读全文
posted @ 2015-09-16 23:15 Chen_Weifeng 阅读(377) 评论(0) 推荐(0)
摘要:一、什么是虚方法 1、提供默认实现的方法 2、子类可以重写也可以不重写 3、如果子类重写会使用子类重写过后的方法,如果没有重写就使用父类方法 4、虚方法必须有方法体,方法体至少需要{} 子类重写父类方法: 1、使用override关键字 2、重写方法必须和父类方法签名... 阅读全文
posted @ 2015-09-16 23:04 Chen_Weifeng 阅读(421) 评论(0) 推荐(0)
摘要:一、多态就是指不同对象收到相同消息时,会产生不同行为。同一个类在不同的场合下表现出不同的行为特征. 多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异 如果子类方法添加了override,那么系统会去父类中寻找与当前重写方法相同签名的方法,如果发现没有添加可被重写的关键字... 阅读全文
posted @ 2015-09-16 23:01 Chen_Weifeng 阅读(231) 评论(0) 推荐(0)
摘要:ArrayList集合是有缺点的:下标不可靠。因为元素的下标随时都有可能会发生变化。当删除或者插入的时候,下标就会发生变化。将数据存储进去以后,我们就没有那么容易找到指定的元素。一、Hashtable 集合 1、可以存储多个数据,并且长度动态增长。 2、哈希表集合是以键值对的方式来存储数据的。 ... 阅读全文
posted @ 2015-08-24 23:25 Chen_Weifeng 阅读(253) 评论(0) 推荐(0)
摘要:C# ArrayList集合 集合 可以向数组那样存储多个数据,但是长度不固定。往其中存多少个都可以。 ArrayList:动态数组(不是一个数组,是具有数组的功能再克服了数组的缺点) ArrayList所在的命名空间:System.Collections 它是1个类,所以我们要使用的话,就必须要创 阅读全文
posted @ 2015-08-24 22:35 Chen_Weifeng 阅读(2817) 评论(0) 推荐(0)
摘要:先看下面这段代码,ChineseStudent类继承于Student类,Student类继承于Person类。 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 阅读全文
posted @ 2015-08-23 23:12 Chen_Weifeng 阅读(540) 评论(0) 推荐(0)
摘要:C# this、base关键字 this关键字 this关键字代表当前对象,通过this关键字可以访问当前对象的成员。(当前对象的成员:自己本身的成员+从父类继承过来的所有的成员。) this关键字可以访问:本类的所有成员和父类的非私有成员。父类的私有成员确实存在,但是就是访问不到。 this关键字 阅读全文
posted @ 2015-08-23 22:35 Chen_Weifeng 阅读(2323) 评论(0) 推荐(0)
摘要:C# 继承 继承的语法 a、在儿子类的类名后面 写上一个冒号 再跟上父亲类的名字。 calss Student:Person 子类:父类 1 class Person 2 { } 3 4 class Student : Person 5 { } b、Student 类从Person类继承,Stude 阅读全文
posted @ 2015-08-23 22:29 Chen_Weifeng 阅读(2439) 评论(0) 推荐(0)
摘要:C# 字符串 字符串的本质其实是一个只读的字符数组。所以我们可以像操作字符数组那样去操作这个字符串。 字符串的恒定性 1、字符串对象是创建在一个叫做“字符串拘留池”当中的。 2、字符串对象一旦创建在“字符串拘留池”中,那么这个字符串对象就无法改变 3、当我们修改字符串变量的值的时候,不会修改这个字符 阅读全文
posted @ 2015-08-13 00:07 Chen_Weifeng 阅读(221) 评论(0) 推荐(0)
摘要:C# 静态成员 关于实例成员 没有被static修饰的成员叫做实例成员。实例成员是属于对象的。通过对象名去访问实例成员。 在创建对象的时候,实例成员跟随着对象一起创建在堆中。 跟着对象一起创建在堆空间中。 有多少个对象,实例成员就有多少份。 对象被回收,这个对象中的实例成员就跟随着一起回收。 关于静 阅读全文
posted @ 2015-08-09 23:06 Chen_Weifeng 阅读(2640) 评论(0) 推荐(0)
摘要:C# ref & out关键字 ref关键字 ref 关键字会导致参数通过引用传递,而不是通过值传递。 通过引用传递的效果是,对所调用方法中的参数进行的任何更改都反映在调用方法中。例如,如果调用方传递本地变量表达式或数组元素访问表达式,所调用方法会将对象替换为 ref 参数引用的对象,然后调用方的本 阅读全文
posted @ 2015-08-09 22:33 Chen_Weifeng 阅读(269) 评论(0) 推荐(0)
摘要:C# 交错数组 表示一个表格数据,行确定,但是每一行的列数不同,那么这个时候就可以使用交错数组。交错数组的本质是1个一维数组,只不过这个一维数组的元素的类型是一个数组。 交错数组的声明 元素的类型[] [] 数组的名称 = new 元素的类型 [交错数组的长度] [ ] int[][] arr = 阅读全文
posted @ 2015-08-09 22:24 Chen_Weifeng 阅读(3830) 评论(0) 推荐(0)
摘要:C# 二维数组 二维数组:它表示一个 表格数据。有行有列。与数组的特点一样:所有的数据的类型相同,并且存储的个数固定。 二唯数组的创建 元素的类型[ , ] 数组的名称=new 元素的类型[行数,列数]; 1 int[,] arr = new int[4, 3]; 表示声明了一个指定行数,每一行有指 阅读全文
posted @ 2015-08-09 22:17 Chen_Weifeng 阅读(24554) 评论(0) 推荐(0)
摘要:C# 结构体 结构(struct,structure的简写)。结构就是由几个数据组成的数据结构,这些数据可能有不同的类型。根据这个结构,可以定义自己的变量类型。结构体与类特别的相似。 定义结构体的语法 和类一样,定义在命名空间下面。结构体中可以定义字段、还可以定义方法、属性、构造函数。结构使用str 阅读全文
posted @ 2015-08-08 18:10 Chen_Weifeng 阅读(952) 评论(0) 推荐(0)
摘要:C# 枚举 枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。enum 关键字用于声明枚举。 定义枚举的语法 enum 枚举的名称 { 写上要限定的取值,每一个取值使用逗号分隔。 } 定义枚举的位置:命名空间下,与类同级别。 1 namespace Test 2 { 3 阅读全文
posted @ 2015-08-08 18:01 Chen_Weifeng 阅读(234) 评论(0) 推荐(0)
摘要:只读字段是属于对象的成员,所以在创建对象的时候,仍然会创建只读字段。 只读字段的值一旦声明就无法改变。除了在我们的构造函数中。 readonly只能修饰字段,不能修饰局部变量。 阅读全文
posted @ 2015-08-08 17:42 Chen_Weifeng 阅读(329) 评论(0) 推荐(0)
摘要:我们来看看这时候这两个对象在内存空间中是如何存在的: 从这张图可以看出: 1、类实例化出来的对象,真实的值是存储在堆空间中的,栈空间中的变量存储的只是这个对象在堆空间中的一个引用地址。 2、结构实例化出来的对象,真实的值是直接存储在栈空间中的变量中。 3、接下来我们在上面代码的基础上加几行代码: 首 阅读全文
posted @ 2015-08-08 17:24 Chen_Weifeng 阅读(298) 评论(0) 推荐(0)