共找到2條詞條名為delegate的結果 展開
- .NET
- 英語單詞
delegate
.NET
委託(delegate)是一種類型安全的函數指針,用於通用語言運行庫(CLI)。在C#中,delegate是一種class,包裝了一個或多個函數指針及綁定的類實例。Delegate用來實現函數回調與事件接收(event listener)。Delegate對象可以作為參數傳遞給其他函數,以引用(referenced)封裝在delegate對象中的函數,而無需在編譯時刻就綁定被調用函數。一旦為委託分配了函數方法,委託將與該函數方法具有完全相同的行為。與委託的類型特徵(由返回類型和參數組成)匹配的任何方法都可以分配給該委託。
委託(delegate)是一種類型安全的函數指針,用於通用語言運行庫(CLI)。在C#中,delegate是一種class,包裝了一個或多個函數指針及綁定的類實例。Delegate用來實現函數回調與事件接收(eventlistener)。Delegate對象可以作為參數傳遞給其他函數,以引用(referenced)封裝在delegate對象中的函數,而無需在編譯時刻就綁定被調用函數。
一旦為委託分配了函數方法,委託將與該函數方法具有完全相同的行為。與委託的類型特徵(由返回類型和參數組成)匹配的任何方法都可以分配給該委託。
“委託”作為類,繼承自System.MulticastDelegate(抽象類)。可以認為包含:一個類對象實例的地址(Target屬性),該類的一個方法的地址(Method屬性),以及另一個“委託”實例的引用(reference)。因此引用一個“委託”對象,可能實際上引用了多個“委託”的實例。“委託”對象被調用時,依次調用裡面的多個“委託”的實例。這對於事件驅動的程序比較有用。
如果“委託”封裝了一個靜態函數,則其內部的綁定的類對象地址為null。
可以通過Delegate類的GetInvocationList()取出這些委託,並查看其Target和Method屬性,獲取所引用的方法名等信息。
型簽(英語:type signature)或型標(type annotation)是計算機科學中對程序的函數、方法、子過程、以及變數等給出其類型。特別是對函數給出其輸入參數數量、類型與次序及輸出結果的類型。許多編譯器產生的內部使用的函數名包含了其類型特徵,這稱為名字修飾,給鏈接器辨別不同的函數提供了方便。
類型特徵的現代應用:
面向對象語言使用的interface,實際上是利用了函數類型特徵的模板。
C++支持的函數重載實際上用不同的類型特徵來辨識。
函數指針是一種在C、C++、D語言、其他類C語言和Fortran2003中的指針。函數指針可以像一般函數一樣,用於調用函數、傳遞參數。在如C這樣的語言中,通過提供一個簡單的選取、執行函數的方法,函數指針可以簡化代碼。
函數指針只能指向具有特定特徵的函數。因而所有被同一指針運用的函數必須具有相同的參數和返回類型。
通用語言運行平台(Common Language Runtime,簡稱CLR)是微軟為他們的.NET的虛擬機所選用的名稱。它是微軟對通用語言架構(CLI)的實現版本,它定義了一個代碼運行的環境。CLR運行一種稱為通用中間語言的位元組碼,這個是微軟的通用中間語言實現版本。
CLR運行在微軟的視窗操作系統上。查看通用語言架構可以找到該規格的實現版本列表。其中有一些版本是運行在非Windows的操作系統中。