using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SimpleEventDemo { /// <summary> /// 类本身没有向外部发送参数 /// </summary> class EventHandlerSimlpe { public event EventHandler OnTestInit; public void Init() { Console.WriteLine("Init()..."); if (OnTestInit != null) { OnTestInit(this, new EventArgs()); } } } /// <summary> /// 由类内部向外发送参数 /// </summary> class EventHandlerComplex { public class TestEvenArgs:EventArgs { private string _testString; public string TestString { get { return _testString; } set { _testString = value; } } public TestEvenArgs(string strTemple) { _testString = strTemple; } } public delegate void TestEventHandler(object sender, TestEvenArgs e); public event TestEventHandler OnTestComplexInit; public void Init() { Console.WriteLine("Init()..."); TestEvenArgs e = new TestEvenArgs("Init()...事件testevenargs"); if (OnTestComplexInit != null) { OnTestComplexInit(this, e); } } } class Program { static void Main(string[] args) { Console.WriteLine("类本身没有向外部发送参数生成。。。"); EventHandlerSimlpe eventsimlpe = new EventHandlerSimlpe(); eventsimlpe.OnTestInit += new EventHandler(eventsimlpe_OnTestInit); eventsimlpe.Init(); Console.WriteLine(""); Console.WriteLine("由类内部向外发送参数。。。"); EventHandlerComplex eventcomplex = new EventHandlerComplex(); eventcomplex.OnTestComplexInit += new EventHandlerComplex.TestEventHandler(eventcomplex_OnTestComplexInit); eventcomplex.Init(); Console.ReadKey(); } static void eventcomplex_OnTestComplexInit(object sender, EventHandlerComplex.TestEvenArgs e) { Console.WriteLine(e.TestString); } static void eventsimlpe_OnTestInit(object sender, EventArgs e) { Console.WriteLine("我是事件方法"); } } }