<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Delegate%28CLI%29</id>
	<title>Delegate(CLI) - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Delegate%28CLI%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Delegate(CLI)&amp;action=history"/>
	<updated>2026-05-26T18:54:24Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=Delegate(CLI)&amp;diff=360060&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Delegate(CLI)&amp;diff=360060&amp;oldid=prev"/>
		<updated>2025-08-22T03:17:37Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;委託&amp;#039;&amp;#039;&amp;#039;（delegate）是一種類型安全的函式指標，用佇通用語言執行庫 ( CLI )。佇咧 C # 中，delegate 是一種 class，包裝一个抑是濟个函式的指標佮結束的類別實例。Delegate 用來實現函式回呼佮事件接收（event listener）。 Delegate 物件會當做參數傳達予其他函式，以參照（referenced）封裝佇 delegate 物件內底的函式，無需要佇咧編譯時刻就結束予人叫函式。&lt;br /&gt;
&lt;br /&gt;
一旦為著委託分配著函式方法，委託將佮該函式的方法具有完全仝款的行為。佮委託的&amp;#039;&amp;#039;&amp;#039;類型特徵&amp;#039;&amp;#039;&amp;#039;（由返回類型和參陣列做）匹配的任何方法攏會當分配應該委託。&lt;br /&gt;
&lt;br /&gt;
==C # 例==&lt;br /&gt;
&lt;br /&gt;
聲明一个 ` delegate ` 類型，這號做 ` SendMessageDelegate ` , 以一个 ` Message ` 類型做參數，倒轉類型做 ` void ` :&lt;br /&gt;
&lt;br /&gt;
下述代碼定義一个函式，以一个實例化的 delegate 類型作為形參 :&lt;br /&gt;
&lt;br /&gt;
共封裝入去 delegate 中的一个函式的定義：&lt;br /&gt;
&lt;br /&gt;
函式 SendMessage，以 SendMessageDelegate 做委託的實例做為實參：&lt;br /&gt;
&lt;br /&gt;
委託實例會當封裝濟个函式：&lt;br /&gt;
&lt;br /&gt;
==技術實現細節==&lt;br /&gt;
&lt;br /&gt;
「 委託」做類，繼承自 System . MulticastDelegate（抽象類）。「委託」上無零个參數，至加三十二个參數，會當無倒轉來值，嘛會當指定返回值類型。會當認為包括：一个類物件實例的位址（Target 屬性）， 該當的一个方法的地址（Method 屬性）， 以及另外一个「委託」實例的參照（reference）。 所以參照一个「委託」東西，這可能實際上有參照真濟个「委託」的實例。「委託」東西被呼叫時代，照稱呼內底的濟个「委託」的實例。這對事件驅動的程式較有路用。&lt;br /&gt;
&lt;br /&gt;
若是「委託」來封裝一个靜態函式，則其內部的結束的類物件位址為 null。&lt;br /&gt;
&lt;br /&gt;
會當通過 Delegate 類的 GetInvocationList ( ) 共遮的委託共號出來，並檢視其實 Target 和 Method 屬性，提著所參照的方法名等的資訊。&lt;br /&gt;
&lt;br /&gt;
==泛型委託==&lt;br /&gt;
&lt;br /&gt;
關鍵字 ` Action ` 定義無回值的泛型委託。` Action ` 對零个參數，至加十六个參數。比如講：&lt;br /&gt;
&lt;br /&gt;
` ` `&lt;br /&gt;
public Action &amp;lt; int &amp;gt; cwdelegate ; / / 定讞一个委托 cwdelegate，li̋n-jín是 int，被返回值。&lt;br /&gt;
&lt;br /&gt;
` ` `&lt;br /&gt;
&lt;br /&gt;
關鍵字 ` Func ` 定義有轉來值的泛型委託。對零个參數，至加十六个參數。其中上正爿的泛型類型是倒轉值類型。&lt;br /&gt;
&lt;br /&gt;
關鍵字 ` Predict ` 定義矣倒轉來值為 bool 的泛型委託。&lt;br /&gt;
&lt;br /&gt;
實例前，無摻喔 event，這委託就是一个普通的委託，會當佇別的函式當中呼叫，嘛會當直接用物件呼叫。毋過加上 event 關鍵字了後，干焦會當用一个員函式呼叫&lt;br /&gt;
&lt;br /&gt;
==用途==&lt;br /&gt;
&lt;br /&gt;
定定用的用途是事件處理。CLI 定義矣控制項的標準的事件處理定式是一个「委託」，聲明如下：&lt;br /&gt;
&lt;br /&gt;
遮的第一个參數是發出該事件的控制項的基本類型 object；後一个參數是事件資料的基本類型 EventArgs。以 Button 控制項類做例，伊有一个屬性 Click，定義做一个 EventHandle 類型的 delegate :&lt;br /&gt;
&lt;br /&gt;
到此，咱對一个具體的 button 實例變數，會當予伊的 Click 事件逐加上一个足濟代誌處理常式：&lt;br /&gt;
&lt;br /&gt;
對於 Visual Basic，欲共語句寫法是：&lt;br /&gt;
&lt;br /&gt;
==參考文獻==&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
&lt;br /&gt;
* MSDN documentation for Delegates&lt;br /&gt;
* Delegates with sample code&lt;br /&gt;
* Sun&amp;#039;s White Paper on Delegates&lt;br /&gt;
* Microsoft answer to Sun&lt;br /&gt;
* Inner workings of Delegates&lt;br /&gt;
* PerfectJPattern Open Source Project , Provides componentized i . e . context-free and type-safe implementation of the Delegates Pattern in Java&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>