委托
1、 什么是委托?
委托就是具有相同簽名和返回值類型的有序方法列表
它定義了方法的類型,使得可以將方法當作另一個方法的參數來進行傳遞
- 是一種引用類型
- 方法的列表稱為調用列表
- 當委托被調用時,它調用列表中的每個方法
畫個圖來幫大家了解下委托:
其實委托,很容易理解,通過圖可以體會到,可以把委托看作是一種用來裝方法的容器。
2、 委托的聲明
先來看看委托是如何聲明的
a、委托類型的聲明看上去與方法的聲明很類似,有返回類型和簽名。返回類型和簽名指定了委托接受的方法的形式
b、委托類型與方法聲明的不同之處:
▲ 委托是以關鍵字delegate開頭的
▲ 委托沒有方法主體
3、 委托的應用
給大家寫個簡單易懂的實例,看完就知道委托時怎么一回事了
先創建兩個窗體Form1和Form2,點擊Form1中的按鈕彈出Form2,可以在Form2中點擊按鈕改變Form1的背景色
接下來,我們來看看里面的具體代碼,看看用委托是如何實現的
首先,先聲明一個委托
Form1里面的代碼:
Form2里面的代碼:
運行代碼,點擊Form1中的按鈕,彈出Form2,
在Form2中點擊改變Form1顏色按鈕,可以發現,Form1的背景色瞬間變為藍色
這樣我們就跨窗體操作了控件。
仔細觀察以下兩句代碼我們可以知道,如何向委托這個容器添加方法。當實例化委托后,
我們可以用+=向委托里面繼續添加方法;
小結:委托是面向對象的,它定義方法簽名的類型,可以與具有兼容簽名的任何方法關聯。我們可以通過委托調用方法。委托用於將方法作為參數傳遞給其他方法。