1樓:睿思博信
直接看msdn或網上搜的大部分說的都是比較生硬的術語,你可以通俗的理解為將一個方法作為引數傳遞給另一個方法!也可以理解為:現有n個引數和返回值都相同的方法,在使用的時候根據需要一個個呼叫太繁瑣,乾脆把這些方法的規律(方法引數和返回值)總結出來,定義成一個委託!
然後把要執行的方法交給委託去執行!+=操作實際上就是委託鏈,委託一次**了若干個方法,以後執行時,我們呼叫委託來執行,委託會把所**的方法一個個再執行!
委託在.net1.0就有,到了2.
0時出現了匿名方法,也就是說委託要執行某一個方法,而這個方法並沒有事先定義,隨用隨定義,連名字都沒取,所以叫匿名方法。例:委託例項=delegate(int x,int y)實際就指向一個未取名的方法,而這個方法接收兩個int引數,返回和。
到了.net3以後又更進一步,匿名方法還可以簡寫成:委託例項=(x,y)=>x+y; 這就是傳說中的lambda表示式,其本質是匿名方法,匿名方法本質是委託!
先通俗理解後,再看文件,你會恍然大悟!委託、匿名方法、lambda表示式的概念其實很重要,如果你不理解的話是沒辦法學習好linq的。
這是我的理解,更多例項,你再搜吧~
2樓:暴瓊枋
委託在c++裡就是函式針指,定義了一個相同的函式入口,然後委託對函式抽象出來的結果
事件由委託來實現的
public delegate void eventhandle(object sender,eventargs e);//定義委託
public event eventhandle mydiyevent;//定義事件
委託還有一個用法是非同步
3樓:浪子狂
委託是對方法的抽象,用來實現方法呼叫的解耦。就來事件為例,事件發表者並不會知道那個方法實現了這個事件的相應。而委託用類做為自己的底層實現,維護著一個委託的堆疊。
4樓:
你的理解基本沒錯.
一般來說, 我們呼叫方法來完成某些工作, 傳入的引數都是資料型別的, 委託可以認為是一個特殊的方法, 引數不是資料型別, 而是方法名, 實現的功能類似c++中的函式指標.
你只要按書上的例子自己寫一兩個簡單的委託來實現一小段功能就可以了, 這樣可以對委託有一個大致的瞭解和知道怎麼應用, 更深層的東西, 建議現在不要太過於深入瞭解, 等學習了後面的知識後, 再回頭來看委託, 你的瞭解就自然會深入些.
同樣一本程式設計教材, 在你能力的不同階段去看它, 都會有不同的領悟, 學習總是循序漸進的, 不要急於一次把委託吃透, 這不現實.
c中的progressbar1如何使用這個進度條控制元件
4終 1 在窗體頁面上繪製一個滾動條控制元件。2 並且還要繪製一個timer控制元件。3 可以在timer的事件中使其逐漸加10。4 但是要注意,如果到了100 要使其回到零點。5 為了效果更佳可以讓這個滾動每次執行都具有隨機時間。然後執行就完成了。 創作者 這個東西想做真實就要看什麼進度 1.事務...
在C 如何定義並使用陣列,在C 中的主函式中,如何定義一個陣列,而這個陣列的大小不確定,大小和數值由使用者從鍵盤輸入?
張老師情感分析 材料 工具 電腦方法如下 1 首先使用 string s new string 6 定義一個長度為6的字串陣列。2 接著使用 int i new int 6 定義一個長度為6的整型陣列,如下圖所示 3 使用 string str new string 定義長度為3的字串陣列,如下 4...
C中的temp是什麼意思,請問c語言中temp是什麼意思啊
temp是指臨時資料夾,temp位於c documents and settings administrator local settings 內。很多臨時檔案放在這裡,用來收藏夾,瀏覽網頁的臨時檔案,編輯檔案等。根據操作的過程進行臨時儲存的檔案技術。我們常用的辦公軟體和其他應用程式通常會臨時儲存使...