什么是委托?為什么要使用委托?什么是事件?


1、什么是委托?

首先聲明一個委托: public delegate string IsLengthFive (string s);

下面寫幾個方法:

public  string DoWork(string a){};

public  string DoSomeWork(string b){};

public string DoNothing(string c){};

委托是一個類型,它代表着簽名相同的一類方法。所謂簽名相同也就是方法的返回值相同,方法的參數列表相同。

舉例幫助理解(string name = "a"; 在這里string定義了name參數所能代表的值的類型,也就是name參數的類型。在上面例子中的委托IsLengthFive 代表着返回類型為string,參數是一個string類型的所有方法)

2、委托的使用

使用委托前要聲明委托變量,首次聲明委托變量有兩種方式:

a01:IsLengthFive  stringLength;

stringLength = DoWork;  ///首次先給委托變量賦值

stringLength += DoSomeWork; ///使用  += 方法給委托變量stringLength綁定方法

stringLength += DoNothing;

經過上面的操作此時的 stringLength 已經有三個方法可以進行調用了

a02:IsLengthFive  stringLength = new IsLengthFive();

 stringLength += DoWork;  //首次直接綁定方法到變量上

stringLength += DoSomeWork;

stringLength += DoNothing;

此時的stringLength也代表了三種方法,進行  -= 操作:stringLength -= DoNothing; ,將DoNothing方法解除綁定

為什么要使用委托?

使用委托可以將同類型的方法綁定到同一個變量上,當調用此變量時就可以一次調用綁定的方法,很方便。

什么是事件?(屬性對字段進行封裝)

事件是由 event 關鍵字修飾的委托————那么事件的本質就是一種委托

聲明一個事件就好比聲明了一個進行了封裝的委托類型的變量!

 匿名方法在委托中的使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM