跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 Delegate(CLI) 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
Delegate(CLI)
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''委託'''(delegate)是一種類型安全的函式指標,用佇通用語言執行庫 ( CLI )。佇咧 C # 中,delegate 是一種 class,包裝一个抑是濟个函式的指標佮結束的類別實例。Delegate 用來實現函式回呼佮事件接收(event listener)。 Delegate 物件會當做參數傳達予其他函式,以參照(referenced)封裝佇 delegate 物件內底的函式,無需要佇咧編譯時刻就結束予人叫函式。 一旦為著委託分配著函式方法,委託將佮該函式的方法具有完全仝款的行為。佮委託的'''類型特徵'''(由返回類型和參陣列做)匹配的任何方法攏會當分配應該委託。 ==C # 例== 聲明一个 ` delegate ` 類型,這號做 ` SendMessageDelegate ` , 以一个 ` Message ` 類型做參數,倒轉類型做 ` void ` : 下述代碼定義一个函式,以一个實例化的 delegate 類型作為形參 : 共封裝入去 delegate 中的一个函式的定義: 函式 SendMessage,以 SendMessageDelegate 做委託的實例做為實參: 委託實例會當封裝濟个函式: ==技術實現細節== 「 委託」做類,繼承自 System . MulticastDelegate(抽象類)。「委託」上無零个參數,至加三十二个參數,會當無倒轉來值,嘛會當指定返回值類型。會當認為包括:一个類物件實例的位址(Target 屬性), 該當的一个方法的地址(Method 屬性), 以及另外一个「委託」實例的參照(reference)。 所以參照一个「委託」東西,這可能實際上有參照真濟个「委託」的實例。「委託」東西被呼叫時代,照稱呼內底的濟个「委託」的實例。這對事件驅動的程式較有路用。 若是「委託」來封裝一个靜態函式,則其內部的結束的類物件位址為 null。 會當通過 Delegate 類的 GetInvocationList ( ) 共遮的委託共號出來,並檢視其實 Target 和 Method 屬性,提著所參照的方法名等的資訊。 ==泛型委託== 關鍵字 ` Action ` 定義無回值的泛型委託。` Action ` 對零个參數,至加十六个參數。比如講: ` ` ` public Action < int > cwdelegate ; / / 定讞一个委托 cwdelegate,li̋n-jín是 int,被返回值。 ` ` ` 關鍵字 ` Func ` 定義有轉來值的泛型委託。對零个參數,至加十六个參數。其中上正爿的泛型類型是倒轉值類型。 關鍵字 ` Predict ` 定義矣倒轉來值為 bool 的泛型委託。 實例前,無摻喔 event,這委託就是一个普通的委託,會當佇別的函式當中呼叫,嘛會當直接用物件呼叫。毋過加上 event 關鍵字了後,干焦會當用一个員函式呼叫 ==用途== 定定用的用途是事件處理。CLI 定義矣控制項的標準的事件處理定式是一个「委託」,聲明如下: 遮的第一个參數是發出該事件的控制項的基本類型 object;後一个參數是事件資料的基本類型 EventArgs。以 Button 控制項類做例,伊有一个屬性 Click,定義做一个 EventHandle 類型的 delegate : 到此,咱對一个具體的 button 實例變數,會當予伊的 Click 事件逐加上一个足濟代誌處理常式: 對於 Visual Basic,欲共語句寫法是: ==參考文獻== ==外部連結== * MSDN documentation for Delegates * Delegates with sample code * Sun's White Paper on Delegates * Microsoft answer to Sun * Inner workings of Delegates * PerfectJPattern Open Source Project , Provides componentized i . e . context-free and type-safe implementation of the Delegates Pattern in Java [[分類: 待校正]]
返回到「
Delegate(CLI)
」。