當時學習.Net的時候只知道事件驅動,卻搞不懂什麼是委托更不會定義事件,當然就不能寫出什麼高質量的程序,以下是個人對委托的理解,用最簡單的實例講解,給初學者一點提示吧,高手就不用看了,呵呵:)
委托可以這麼來理解,委托就像是定義一個指針(C++),提供入口。
1 實例1:執行一個委托定義的方法
第一步:定義一個委托
public delegate void Computer(); //委托用delegate定義,此方法是void類型,並且沒有任何參數
第二步:定義一個和委托類型相同的方法,計算兩數之和
private void MathOpt()
{
int a =1;
int b = 2;
int sum=a +b;
Response.Write(sum.tostring());
}
第三步:在一個按鈕的click事件中
private void button1_Click(object sender, EventArgs e)
{
Computer com;//實例
com = MathOpt;//類似指針,將方法的地址賦值委托類型的變量
com();
}
好了,這樣就執行了一個委托的方法,當系統執行到com()的時候,就相當於執行方法MathOpt(),如果有參數,那麼在定義委托的時候和方法有相同的參數即可。
有了委托就可以定義事件了
實例2:定義一個事件
功能:在父子窗體間通信,如在子窗體輸入條件,在父窗體中查詢,類似Office的查找
定義窗體:假設父窗體為Frm1,子窗體為Frm2
第一步在Frm2中定義事件:
public delegate void FullSearch(string key); //定義全文檢索的委托事件
public event FullSearch FullSearchOrder; //用委托定義一個檢索的事件(會在父窗體中執行功能)