委托最令人兴奋的的特性之一是它支持多播委托(multicasting)。简单地说,多播委托是指允许创建方法的调用列表或者链表的能力。当多播委托被调用时,列表中的方法均自动执行。这种链表很容易创建:初始化一个诶托,然后使用“+”或“+=”运算符为链表添加方法。在移除一个方法时,使用“-”或"-=",如果委托有返回值,则将列表中最后一个方法的返回值用作整个委托调用的返回值。因此,使用多播委托通常具有void返回类型。
下面是一个多播委托的,它将前面示例中字符串操作方法的返回类型改为void类型,并使用ref参数向调用者返回改变后的字符串。
输出结果如下:
Replaces spaces with hyphens.
Reversing string.
Resulting string: tset-a-si-si
Reversing string.
Removing spaces.
Resulting string: .tsetasisihT
委托链表是一个功能强大的机制,它能够把一系列需要执行的方法封装在一个单元中,从而改善某种类型的代码的组织结构。另外,委托链表对于时间处理有特殊的作用。