古詩詞大全網 - 個性簽名 - 委托 c# 再什麽時候用

委托 c# 再什麽時候用

委托應該屬於高級編程的部分了,我也是查了很久,大部分人好像根本不明白,就是復制別人的東西,關鍵部分都很籠統,就我的了解簡單的和妳說壹下吧,不是太專業,不過妳應該可以看明白!

-----------------------------------------------------------

委托 在net框架中其實就是壹個類,所以定義的時候妳可以隨便找個地方定義,比如在其他的類裏面或者直接在命名空間下定義都可以;另外既然它也是類,所以使用的時候妳就要實例化它,例如:

delegate int MyDelegate(int i);

//上面這句就是聲明壹個委托,其中網上所謂的簽名就是指的返回類型int和參數int i;這個委托聲明後,只能和簽名相同的方法綁定使用,例如:

//其中myMethod就是妳在後面要調用的方法了,它的簽名必須和委托的壹致,即擁有相同的返回類型和參數

public int myMethod(int j)

{

return ++j;

}

在實例化委托的地方就可以直接調用方法

MyDelegate MyD=new MyDelegate("myMethod");//實例化

MyD(5);//這裏其實調用的就是meMethod方法,返回6;

--------------------------------------------------------------

對於使用程序結構 大致可以理解了吧?

對與妳的問題,在什麽地方什麽時候使用委托呢?

首先說在net框架中,委托經常和事件綁定使用,所以它是實現框架中事件處理機制的基礎。具體的使用簡單的幾句是說不清楚的。

net中有自己的規範,如事件參數要繼承EventArgs類,事件多以EventHandler結束等等,想往深裏研究的話,可以到msdn文檔庫中查看相關資料進行學習。

如果自己編寫框架類項目時,也可以有自己的規範,比如在妳想動態執行某個方法的時候就可以使用委托;舉個簡單的例子:

public int myMethod(int j){}

這個方法的參數是int類型的,所以妳只能傳遞int行的參數,如果妳將int改為MyDelegate即:public int meMethod(MyDelegate j){};//MyD就是上面我們定義的委托

這樣妳就可以將和委托具有相同簽名的方法傳遞給這個myMethod方法了,由於時間關系說的不是太細致,如果有問題可以壹起通過baidu HI探討,給我留言也可以。

全部手寫的,妳仔細看壹下,但願可以幫助妳,互相學習!

另外加壹句,很多教材把委托比喻為郵局,這個理解挺形象的,就是托郵局幫我們做某件事情,然後反饋給我們相關的信息,委托和事件綁定基本就是這樣,通過委托訂閱我們感興趣的信息等等。