委託的定義:
委託是一種在物件裡儲存方法引用的型別,同時也是一種型別安全的函式指標。
委託的優點:
壓縮方法的呼叫。
合理有效地使用委託能提公升應用程式的效能。
用於呼叫匿名方法。
委託的宣告:
委託應使用public delegate type_of_delegate delegate_name()的形式來宣告。
示例:public delegate int mydelegate(int delvar1,int delvar2)
注意點:可以在不帶引數或引數列表的情況下宣告委託。
應當遵循和宣告方法一樣的語法來宣告委託。
使用委託的示例程式:
public delegate double delegate_prod(int a,int b);
class class1
static void main(string args)
}示例程式解析:
上面我用一段小程式示範了委託的使用。委託delegate_prod宣告時指定了兩個只接受整型變數的返回型別。同樣類中名為fn_prodvalues的方法也是如此,委託和方法具有相同的簽名和引數型別。
在main方法中建立乙個委託例項並用如下方式將函式名稱傳遞給該委託例項:
delegate_prod delobj = new delegate_prod(fn_prodvalues);
這樣我們就接受了來自使用者的兩個值並將其傳遞給委託:
delobj(v1,v2);
在此委託物件壓縮了方法的功能並返回我們在方法中指定的結果。
多播委託:
多播委託包含乙個以上方法的引用。
多播委託包含的方法必須返回void,否則會丟擲run-time exception。
使用多播委託的示例程式:
delegate void delegate_multicast(int x, int y);
class class2
static void method2(int x, int y)
public static void main()
}
示例程式解析:
大家可以看到上面的示例程式分別定義了名為method1 和 method2的兩個接受整型引數、返回型別為void的方法。
在main函式裡使用下面的宣告建立委託物件:
delegate_multicast func = new delegate_multicast(method1);
然後使用+= 來新增委託,使用-=來移除委託。
總結:這篇小文章將幫助您更好地理解委託。
理解C 中的委託和事件
csdn論壇,由於對方也是 所以源作者不詳 有許多人問的,net中的委託以及事件處理。我拿簡單的例子說明一下,是現實中的例子。比如說 乙個公司 場景 你是老闆,手下有兩個員工,小張和小王。你命令小王,如果小張玩遊戲,則小王扣去小張500元錢。這就是現實中的委託。實際上,在寫程式中,程式設計師就是老闆...
理解C 中的委託和事件
一直不甚至理解c 中委託和事件的概念和用法,在網上參看數篇文字之後略有所得,好記性不如爛鍵盤,故以文字記下。首先,設想乙個簡單場景 或許不太貼切 來說明,夜深人靜,屋裡有老鼠躡手躡腳的行動,且隨時提防著貓,如果聽到貓叫,老鼠聞聲立即逃回洞裡。這個場景可以抽象為委託和事件的幾個要素 貓和老鼠分別是兩個...
C 學習 委託的理解
1.委託的概念 委託 delegate 是一種儲存函式引用的資料型別。委託是用返回型別和引數列表定義的變數。給定的委託型別可以匹配返回型別和引數與委託定義相同的函式。委託可以近似理解為函式指標,即可以實現把方法當作引數進行傳遞。1.1 委託的定義 委託的定義和函式類似,但是不帶函式體,並且必須使用d...