摘要:
事件的主要特点是一对多关联,即一个事件源,多个响应者。在具体技术上,.NETFramework的事件处理机制是基于多路委托实现的。8.1事件与多路委托 先看一个多路委托示例项目MulticastDelegateLinkExample。首先定义一个委托:publicdelegatevoidMyMul... 阅读全文
摘要:
委托变量可以代表某一函数,使用委托变量就相当于调用一个函数。如果仅是这么简单,那么直接调用函数不就行了吗?为什么还要引入“委托”这一特性? 事实上,委托不仅可以代表一个函数,还可以组合“一堆”的函数,然后批量执行它们。 请看示例程序UseDelegate,它展示了委托变量之间的组合与分解。 项目中... 阅读全文
摘要:
委托是一种新的面向对象语言特性,在历史比较长的面向对象语言比如C++中并未出现过。微软公司在设计运行于.NETFramework平台之上的面向对象语言(如C#和VisualBasic.NET)时引入了这一新特性。7.1理解委托的概念 我们都很熟悉常用的数据类型(如int)的使用方法:先定义一个变量,... 阅读全文
摘要:
5.1抽象类与抽象方法 在一个类前面加上“abstract”关键字,此类就成为了抽象类。 对应地,一个方法类前面加上“abstract”关键字,此方法就成为了抽象方法。 注意抽象方法不能有实现代码,在函数名后直接跟一个分号。 抽象类专用于派生出子类,子类必须实现抽象类所声明的抽象方法,否则,子类仍是... 阅读全文
摘要:
4.4方法重载、隐藏与虚方法调用 由于子类对象同时“汇集了”父类和子类的所有公共方法,而C#并未对子类和父类的方法名称进行过多限制,因此,一个问题出现了: 如果子类中某个方法与父类方法的签名一样(即方法名和方法参数都一样),那当通过子类对象访问此方法时,访问的是子类还是父类所定义的方法? 让我们先从... 阅读全文