委派是一種物件導向【函式指標】,讓您利用函式的參考來間接叫用 (Invoke) 函式。
你可以把他想像成一個電燈開關或遙控器,可以從遠端操控電器。
在呼叫程序與被呼叫程序之間需要媒介的情況下,委派相當有用。

例如,您可能要引發事件的物件能夠在不同的情況下呼叫不同的事件處理常式。
但可惜的是,引發事件的物件無法提前知道處理特定事件的是哪一個事件處理常式。

當您使用 AddHandler 陳述式時,藉由為您建立委派,Visual Basic .NET 讓您能夠動態建立事件處理常式與事件的關聯。
另一個用法則是程式之間Call back的用法。例如A物件有個函式Foo,B物件有個函式Bar,
當A物件呼叫B物件的Bar函數時,希望Bar執行完之後,回Call A物件的Foo函式。
簡單做法就是Bar函式裡面加上一段 A.Foo就可以了。但是如果B是一個服務元件,也就是很多的函式都會引用到他,
也就是 Bar無法預先知道將來回Call的是那一個函數,可能是A.Foo1, C.Foo2, D.Foo3,…,這時候delegate就很好用了。

以A為例,在呼叫B.Bar之前,先建立一個delegate,對應到A.Foo,相對的修改B.Bar的定義,加入一個delegate物件參數,
當A呼叫B.Bar時,將這個 delegate當作參數,傳送到B.Bar,Bar執行完,直接叫用這個delegate即可。
依此類推,每個呼叫B.Bar的物件不同,對應過來的delegate也不同,但對Bar來說,都是相同的做法。