摘要: 装箱:值类型转换为引用类型; 拆箱:引用类型转换为值类型; 由于C#中所有的数据类型都是由基类System.Object继承而来的,所以值类型和引用类型的值可以通过显式 (或隐式)操作相互转换,而这转换过程也就是装箱(boxing)和拆箱(unboxing)过程。 装箱 是值类型到 object 类 阅读全文
posted @ 2017-05-25 23:55 LBO.net 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 值类型在栈中分配内存空间并保存数据; 引用类型在堆上分配内存空间并保存数据,且在栈中保存指向堆中的数据地址; 值类型变量声明后,不管是否已经赋值,编译器为其分配内存。 引用类型当声明一个类时,只在栈中分配一小片内存用于容纳一个地址,而此时并没有为其分配堆上的内存空间。当使用 new 创建一个类的实例 阅读全文
posted @ 2017-05-25 23:51 LBO.net 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 事件的本质 特殊的多路广播委托 定义事件: 事件访问修饰符一般为public 定义为公共类型可以使事件对其他类可见 事件定义中还包括委托类型,既可以是自定义委托类型也可以是EventHandler(预定义) 运用"+="运算符来订阅事件,运用"-="运算符来取消订阅事件 例:自定义委托事件 1 cl 阅读全文
posted @ 2017-05-23 20:38 LBO.net 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 运用“-”运算符将委托从委托链移除 1 class HelloWorld 2 { 3 //定义委托类型 4 delegate void DelegationChain(); 5 static void Main(string[] args) 6 { 7 //用静态方法来实例委托 8 Delegati 阅读全文
posted @ 2017-05-23 18:32 LBO.net 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 委托链、多路广播委托:也就是把多个委托链接在一起,我们把链接了多个方法的委托称为委托链或多路广播委托 例: 运行结果: 阅读全文
posted @ 2017-05-23 18:19 LBO.net 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 基本步骤 (1)定义委托类型,其定义类似方法的定义,只是多了一个delegate; (2)实例化委托,委托也是属于类类型所以用也用new关键字实例化; 委托的实例化用一个方法名作为参数,并且该方法的定义必须符合委托的定义; 即参数个数、参数类型、返回类型与委托一样 (3)把委托实例化的对象当参数传递 阅读全文
posted @ 2017-05-23 14:56 LBO.net 阅读(166) 评论(0) 推荐(0) 编辑
摘要: (1)抽象类使用abstract关键字进行定义,接口使用interface关键字定义,他们都不能进行实例化。 (2)抽象类中可以包含虚方法、非抽象方法、静态成员;接口中不能包括虚方法、任何静态成员 并且接口中只能定义方法、不能实现方法,方法的具体时间应该由类来完成。 (3)抽象类不能实现多继承、接口 阅读全文
posted @ 2017-05-22 10:17 LBO.net 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 接口的定义 与类不同的是接口用interface关键字 (1)接口中所有成员不能添加任何修饰符,默认为public,如果显示指定修饰符将会出现编译错误; (2)接口中不能包含字段、运算符重载、实例构造函数和析构函数; 接口的继承 (1)类继承接口与类继承类是一样的,都使用: 继承多个接口后面用,分开 阅读全文
posted @ 2017-05-19 11:47 LBO.net 阅读(802) 评论(0) 推荐(0) 编辑
摘要: 由于子类继承类父类,那么子类就拥有相同的行为,但子类的行为有时需要相互区别 子类就需要覆写父类的方法来实现子类特有的行为,这样的技术在c#中就叫做多态。 多态就是相同类型的对象调用相同的方法却表现出不同的现象 使用virtual和override关键字实现重写方法 只有基类成员声明为virtual和 阅读全文
posted @ 2017-05-18 18:07 LBO.net 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 使用继承之后当我们初始化一个子类时子类的初始化顺序为: (1)初始化类的实例字段 (2)调用基类的构造函数,如果没有指明基类则调用System.Object的构造函数; (3)调用子类的构造函数 阅读全文
posted @ 2017-05-18 17:31 LBO.net 阅读(657) 评论(1) 推荐(0) 编辑
//返回顶部