委託可以這麼來理解,委託就像是定義乙個指標(c++),提供入口。
1 例項1:執行乙個委託定義的方法
第一步:定義乙個委託
public delegate void computer(); //委託用delegate定義,此方法是void型別,並且沒有任何引數
第二步:定義乙個和委託型別相同的方法,計算兩數之和
private void mathopt()
第三步:在乙個按鈕的click事件中
private void button1_click(object sender, eventargs e)
好了,這樣就執行了乙個委託的方法,當系統執行到com()的時候,就相當於執行方法mathopt(),如果有引數,那麼在定義委託的時候和方法有相同的引數即可。
有了委託就可以定義事件了
例項2:定義乙個事件
功能:在父子窗體間通訊,如在子窗體輸入條件,在父窗體中查詢,類似office的查詢
定義窗體:假設父窗體為frm1,子窗體為frm2
第一步在frm2中定義事件:
public delegate void fullsearch(string key); //定義全文檢索的委託事件
public event fullsearch fullsearchorder; //用委託定義乙個檢索的事件(會在父窗體中執行功能)
第二步在frm2的「查詢」按鈕事件中執行:
private void btnsearch_click(object sender, system.eventargs e)
第三步轉到frm1中處理事件
3-1 在父窗體中的彈出子窗體時產生定義的那個事件方法:如
frm2 frm2=new frm2(key); //key為要查詢的關健字,與定義事件方法引數保持一至
frm2.fullsearchorder +=new .frm2.fullsearch(frm2_fullsearchorder); //執行這句會自動產生乙個事件frm1_fullsearchoreder
frm2.showdialog ();
3-2 在系統產生的事件中完成查詢功能就ok了
private void frm2_fullsearchorder(string key)
到這裡就好了,不同窗體間就可以通訊了,在彈出的子窗體中就可以執行父窗體中的方法了,原理都是利用委託。
看到高人這樣解釋:
你去看電影,電影院賣給你兩張票,不過在賣的時候他肯定不知道這個位置是你座還是你朋友座,是男的座還是女的座.只有等電影開場了,大家都做上去了一切就清楚.
你可以將委託理解為乙個佔位符,就是先站乙個位置.具體是什麼東西等用的時候在指定.
初始delegate委託
剛剛接觸c 不足三個月,最近網上查了一下c 的delegate委託。發現delegate更類似於之前學習c語言時候的指標,可以呼叫其它方法。使用委託可以將方法作為引數來賦值和傳遞。1 定義委託 2public delegate void mytestdelegate int i 3 class pr...
什麼是委託?
思考 static關鍵字是什麼?加上這個關鍵字,這個方法只能,在本類中使用!簡記 想做什麼事情,但是又不確定,就用委託佔位 然後將方法作為傳遞!1 什麼是委託?委託就是把 方法 作為引數進行傳遞!委託是一種 資料型別 像類一樣 可以宣告委託型別變數 2 定義的方法沒有返回值,那麼定義的委託也沒有返回...
什麼是委託
什麼是委託 首先要知道什麼是委託,用最通俗易懂的話來講,你就可以把委託看成是用來執行方法 函式 的乙個東西。如何使用委託 在使用委託的時候,你可以像對待乙個類一樣對待它。即先宣告,再例項化。只是有點不同,類在例項化之後叫物件或例項,但委託在例項化後仍叫委託。宣告,如 1 namespace vczx...