多播委托中的方法調用的順序與增加方法時的順序是一致的。
多播委托中,如果其中的某個方法執行發生了異常,后面的方法不再執行。
使用多播委托時,如果不是用+=而是直接使用==,賦值會將前面綁定的所有其他方法(委托)都覆蓋掉。
通過GetInvocationList()方法可以獲取到多播委托中的每個委托對象,雖然看起來是一個委托對象,其實是一個委托數組。
委托的不可變性:
a.委托具有類似于String一樣的不可變性。
b.建議使用委托的時候盡量少定義自己的委托。使用系統中已經有的委托,減少程序集中定義的類型個數。
委托的小總結:
1.委托是類型。
2.委托是引用類型。
3.使用委托的時候必須new?一個委托對象,即便看到的代碼沒有new委托對象,編輯器也會在編譯的時候幫我們new,賦值給委托的方法,其實是存儲在委托的對象中的。
4.委托使用的步驟:
a.定義一個委托;
b.聲明一個委托變量;
c.調用委托;
5.什么情況下用委托?委托用什么作用?
簡要的說就一句話“在代碼中動態嵌入一個方法”。
當一個類型中需要嵌入一段代碼,但是這段代碼有不確定性,是根據使用這個類型的用戶來確定其代碼的,這種情況下就可以在該類型中,使用一個委托,保證在某種情況下會調用該委托,這時,用戶將對應的方法傳遞給改委托,則就會調用這個方法。
自定義控件的時候會大量的使用委托(寫事件的時候會用到委托)。
可以把靜態方法或私有方法賦值給委托變量,賦值后,只要能使用到改委托變量的地方就能使用該方法,打破了訪問修飾符的限制。