要為類構造乙個事件,必須用 event 來宣告乙個 delegate 型的字段,如:
puclic calss test
在建立類的例項後定義這個 「load」事件:
test m=new test();
m.load=new eventhandler(m_load);
void m_load(object sender, eventargs e)
再看看下面的完整的一段**:
using system;
class testclass
private static void customevent1(object sender, eventargs e)
private static void customevent2(object sender, eventargs e)
private static void load1(object sender, eventargs e)
. please input:", system.console.backgroundcolor.tostring());}}
public class eventclass
public void onload()
else}}
在包含事件宣告的類中,宣告乙個資料型別是委託的這麼樣的乙個物件customeventhandler,
它有兩個引數(sender和e);在這裡使用委託的目的就是在執行中向引數傳遞方法,並由委託物件生成的例項接收這個引數方法的返回值,因此,在宣告委
託型的物件時應根據類中的方法結構來定義,或者說在引用類中應當根據委託型物件的結構來生成響應事件的方法結構,比如兩者都有哪些型別的引數、返回值的類
型,也就是說兩者要保持一致。同時,要正確地使用c#中的委託,就必須保持三個步驟:宣告——例項化——呼叫。
在上面的**中,eventclass 類就體現了這個原則:
1. 宣告委託型別的物件: public delegate void customeventhandler(object sender, eventargs e);
2. 建立customeventhandler物件的例項customevent:public event customeventhandler customevent;
3. 在invokeevent()方法中實現了對該事件的呼叫,引用事件。
C 事件和委託
c 程式設計中的事件驅動是說應用程式的執行流程是由外界發生的事件確定的。也就是接受到任務再工作的模式。事件是乙個訊號,它告知應用程式有重要的事情發生。真正的執 況是,各個應用程式把負責不同功能的物件在其執行期間送入windows作業系統,讓這些物件等待windows產生事件。然後加以處理,windo...
C 委託和事件
什麼是委託?委託和事件這兩個概念是完全配合的。委託僅僅是函式指標,那就是說,它能夠引用函式,通過傳遞位址的機制完成。委託是乙個類,當你對它例項化時,要提供乙個引用函式,將其作為它建構函式的引數 先看示例 例中先申明乙個委託,例如 public delegate void somedelegate s...
C 委託和事件
要為類構造乙個事件,必須用 event 來宣告乙個 delegate 型的字段,如 puclic calss test 在建立類的例項後定義這個 load 事件 test m new test m.load new eventhandler m load void m load object sen...