1. IClonable大概没什么问题,就是克隆出一个指向同一个object的同一个方法的Delegate。至于有什么用,类库设计者不可能排除它有用的可能性,所以留下这个接口我认为是明智的。否则等到真的用需要的时候没法实现就更麻烦了。2. ISerializable,这个就有点麻烦了。由于实现了这个接口,在Serialize的过程中一个包含了delegate成员的对象可能把一大堆挂在delegate身上的其它对象都拽进去!比如,对象A有一个事件e,对象B把自己的方法f挂在了A的事件e上,那么在Serialize A的时候,A/B包括那个事件的delegate都会被串行就去。这有可能是你需要的行为,但更多情况下不是。所以是用要小心。
   至于原因,我想大概和1差不多,只是为以后可能的应用做准备,这是类库设计应该采用的方式。