改进C#代码之24:通过定义并实现接口替代继承


1. 委托为我们提供了类型安全的回调定义。虽然大多数常见的委托应用都和事件有关,但这并不是C#委托应用的全部场合。当类之间有通信的需要,并且我们期望一种比接口所提供的更为松散的耦合机制时,委托便是最佳的选择。委托允许我们在运行时配置目标并通知多个客户对象。

 

2. 多播委托将会把所有添加到该委托中的目标函数组合成一个单一的调用。不过组合中有两点需要注意:第一,如果有委托调用出现异常,那么这种方式不能保证安全;第二,整个调用的返回值将为最后一个函数调用的返回值。

 

3. 在多播委托调用过程中,每个目标会被依次调用。委托对象本身不会捕捉任何异常。因此,任何目标抛出的异常都会结束委托链的调用。 

posted on 2011-08-15 17:02  酸甜西瓜  阅读(436)  评论(0编辑  收藏  举报