1 在C#中什么是委托?
它是C#中一種新的類型,它的作用相當于C語言中的函數指針,但與函數指針相比,委托是類型安全的并且是完全面向對象的。
通過委托可以間接的調用一個方法(實例方法或靜態方法都可以的)。委托包含對方法的引用,使用委托可以在運行時動態的設定要調用的方法,執行或調用委托,意味著執行該委托指向(引用)的方法。
委托指向的方法必須和委托具有相同的方法簽名,即委托的參數數量、數據類型和順序、返回值必須都要一致。
2 委托的定義和調用
例如: (指向的是靜態方法)
注意:
實例化委托是將委托指向或引用某個方法,也就是必須要講某一個方法作為參數傳遞委托的構造方法。
如果此處這樣寫:
就會報錯,因為并沒有將委托指向某一個方法。
例如2:(指向實例方法)
3 匿名方法
要想使用委托,委托所指向的方法必須存在。但在C#2.0中使用委托還有另一種方式:匿名方法。
匿名方法:就是沒有名字的方法,和javascript中比較類似,就是不需要定義委托要指向(引用)的方法,而是把要引用的方法的方法體直接作為參數傳遞給
委托的構造方法。
例如:
不使用匿名方法的代碼:
使用匿名方法的代碼:
所以:匿名方法就是把委托要引用的方法的方法體直接放在實例化委托時的后面或者構造方法里作為一個參數,用戶不用指定匿名方法的返回值類型,返回值類型由return語句決定,
并必須和定義委托時的返回類型一致。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。