改进C#代码之24:通过定义并实现接口替代继承
2011-08-15 17:02
731 查看
1. 委托为我们提供了类型安全的回调定义。虽然大多数常见的委托应用都和事件有关,但这并不是C#委托应用的全部场合。当类之间有通信的需要,并且我们期望一种比接口所提供的更为松散的耦合机制时,委托便是最佳的选择。委托允许我们在运行时配置目标并通知多个客户对象。
2. 多播委托将会把所有添加到该委托中的目标函数组合成一个单一的调用。不过组合中有两点需要注意:第一,如果有委托调用出现异常,那么这种方式不能保证安全;第二,整个调用的返回值将为最后一个函数调用的返回值。
3. 在多播委托调用过程中,每个目标会被依次调用。委托对象本身不会捕捉任何异常。因此,任何目标抛出的异常都会结束委托链的调用。
2. 多播委托将会把所有添加到该委托中的目标函数组合成一个单一的调用。不过组合中有两点需要注意:第一,如果有委托调用出现异常,那么这种方式不能保证安全;第二,整个调用的返回值将为最后一个函数调用的返回值。
3. 在多播委托调用过程中,每个目标会被依次调用。委托对象本身不会捕捉任何异常。因此,任何目标抛出的异常都会结束委托链的调用。
相关文章推荐
- 改进C#代码之22:通过定义并实现接口替代继承
- 《Effective C#》读书笔记——条目22:通过定义并实现接口替代继承<使用C#表达设计>
- 二十四、继承(一) 代码重用、继承方式、接口继承与实现继承、继承和重定义、继承和组合
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- C# 反射-通过继承接口实现创建对象并调用方法
- 为什么继承是有害的?--通过把具体的基类转变成接口来改进你的代码
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- Java编程通过list接口实现数据的增删改查代码示例
- 进程外COM组件实现IRpcChannelBuffer接口,客户端通过代理接口跨进程调用(有代码)
- C#之接口定义与实现
- JAVA与多线程开发(线程基础、继承Thread类来定义自己的线程、实现Runnable接口来解决单继承局限性、控制多线程程并发)
- c#通过反射查找接口的实现 并创造实例
- 如果类a继承类b,实现接口c,而类b和接口c中定义了同名变量,请问会出现什么问题?(瞬联)
- jvava 代码创建接口 通过jni实现C的调用步骤