usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.IO;namespacecodetest{classProgram {Static voidMain (string[] args) {eventtest e=NewEventtest (Ten); E.enumdelegate+=NewcodeTest.EventTest.NumDelegate (e.show); E.enumdelegate+ = (x) + = {Console.WriteLine ("anonymous functions can be directly bound! "); }; E.setvalue ( -); IEvent IE=NewMyClass (); Ie.mydelegate+=Newmydelegate (show); Ie. Show (); Ie.myeventhandler+=NewEventHandler (Show); Ie.myeventhandler (New Object(),NewEventArgs ()); Console.ReadLine (); } Static voidShow () {Console.WriteLine ("Show!!!"); } Static voidShow (Objectsender, EventArgs e) {Console.WriteLine ("Show EventHandler"); } } classEventtest {intvalue; Public Delegate voidNumdelegate (intnum); Public Eventnumdelegate enumdelegate; PublicEventtest (intnum) {SetValue (num); } Public voidOnnumchange (intnum) { if(Enumdelegate! =NULL) {enumdelegate (num); } Else{Console.WriteLine ("Event is null"); } } Public voidSetValue (intN) {if(Value! =N) {value=N; Onnumchange (n); } } Public voidShow (intnum) {Console.WriteLine (string. Format ("Num is {0}", num)); } } Public Delegate voidMyDelegate (); Public InterfaceIEvent {//Microsoft recommended wordingEventHandler MyEventHandler {Get;Set; } EventMyDelegate mydelegate; voidShow (); } Public classmyclass:ievent { PublicEventHandler MyEventHandler {Get;Set; } Public EventMyDelegate mydelegate; Public voidShow () {if(MyDelegate! =NULL) MyDelegate (); } }}
Events in C #