委託的語法和方法比較相似,只是比方法多了乙個關鍵字delegate ,我們都知道方法就是將型別引數化,所謂的型別引數化就是說該方法接受乙個引數,而該引數是某種型別的引數,比如int、string等等;而委託是將方 法引數化,說了上面的那個型別引數化之後,相信你也能猜到方法引數化的意思了,對,就是將方法作為乙個引數傳到乙個委託中。
首先來看看宣告委託的語句:
public deletate void mydelegate();
public:訪問修飾符 delegate:關鍵字 void:返回型別 mydelegate:委託名稱 ( ):引數列表.
事件就是乙個特殊的委託,委託和事件就類似於字段和屬性的關係,事件是對委託做了乙個封裝(這是個人理解)
先看看宣告乙個事件:
public event mydelegate eventmydel;
public:訪問修飾符 event:關鍵字 mydelegate:委託 eventmydel:事件名稱
一、定義乙個訂閱者:
public二、定義乙個監督者:class
publishser
return
rtn;}}
public三、定義執行者:class
subscriber1
}
publicview codepartial
class
form1 : form
private
void form1_load(object
sender, eventargs e)
public
string
getnumberchanged()
}
備註: 委託名:generaleventhandler;事件名去掉handler:generalevent;調閱方法名:(事件前面加上on):ongeneralevent
令附一例項:**:
在c# winform的日常開發中,我們通常需要遇到跨窗體傳值這一問題,實現的方式也是有很多的,今天給大家分享一種通過委託和事件來實現的傳值方式。不多說廢話,我將用乙個具體的例項來跟大家說明怎麼樣利用很委託和事件以及自定義的引數來實現跨窗體傳值。
例如:程式中我們有乙個主窗體,其中文字框的值是我們需要從另外乙個窗體中獲取的,在這個表單窗體中,填寫完整聯絡人位址資訊後,我們希望把這些資訊回傳到主窗體中,最終,我們想讓主窗體得到如下的資料:
usingview codesystem;
using
system.collections.generic;
using
system.componentmodel;
using
system.data;
using
system.drawing;
using
system.linq;
using
system.text;
using
system.windows.forms;
namespace
delegatepassvalue
private
void btnok_click(object
sender, eventargs e)
private
void btncancel_click(object
sender, eventargs e)
} public
class
addressupdateeventargs : system.eventargs
public
string country }
public
string state }
public
string city }
public
string zipcode }
}}
其次,是主窗體(即要取得傳遞值的窗體),如下:
usingview codesystem;
using
system.collections.generic;
using
system.componentmodel;
using
system.data;
using
system.drawing;
using
system.linq;
using
system.text;
using
system.windows.forms;
namespace
delegatepassvalue
private
void btnsetaddress_click(object
sender, eventargs e)
private
void addressform_buttonclicked(object
sender, addressupdateeventargs e)
private
void btnclose_click(object
sender, eventargs e)
}}
例項分析 事件與委託
事件 public delegate void timeeventhandler string s 委託宣告 class mytime class processtime the time is now s,datetime.now class testtime 委託 delegate void t...
委託例項(delegate例項 事件委託通知)
delegate例項 delegate是c 中的一種型別,它實際上是乙個能夠持有對某個方法的引用的類。與其它的類不同,delegate類能夠擁有乙個簽名 signature 並且它只能持有與它的簽名相匹配的方法的引用。它所實現的功能與c c 中的函式指標十分相似。它允許你傳遞乙個類a的方法m 給另乙...
委託與事件
1.建立乙個類,分別建立加 減 乘 除四個方法,通過委託和事件,實現 輸入兩個計算數,完成所有的四個方法的呼叫,計算出結果顯示。建立乙個警察 policeman 類,乙個小偷 thief 類,例項化兩個類的物件,當policeman類中警笛鳴響 alarm 方法執行時,觸發小偷逃跑 runaway ...