1. 程式人生 > 其它 >C#多路廣播委託的一點淺見

C#多路廣播委託的一點淺見

以上是C#官方對委託的定義與介紹,常規的委託定義比如

delegate void test(string str);

但是這種委託通常是和一個事件繫結,我們需要編寫觀察者模式的專案時候通常會出現的現象是委託、事件與要呼叫方法進行一對多的繫結,這時候就需要用到多路廣播委託,也就是多播委託。

C#對於多播委託的支援的有兩種,通過Delegate.Combine和MulticastDelegate.Combine和兩種方式進行建立。以下我們主要介紹後者。

微軟對於MulticastDelegate的介紹很簡單,如下。

它具體的使用方式很簡單。

MulticastDelegate.Combine(Event, Event1).DynamicInvoke()

此時我們需要注意的是,傳入的兩個事件的委託型別必須是同一種委託,不然就會

當DynamicInvoke被執行成功後,方法就會按照先進先出的順序被觸發、執行。

當編譯完成後我們會清楚地看到兩種方式並無差別。