// ********************************************/ /**/ /* Delegate Sample/* //******************************************************************/ using System; namespace EventTest { //事件类 public class EventClass { public void display(object sender,System.EventArgs e) { Console.WriteLine("This is the Event Class"); Console.ReadLine(); } } //调用类 class InvokeClass { //声明代理对象,注意参数 public delegate void delegateobj(object sender,System.EventArgs e); //声明事件对象 private event delegateobj obj; //声明要调用的事件类对象 private EventClass ec; public InvokeClass() { ec=new EventClass(); //添加事件对象到事件队列中,参数为要调用的事件 this.obj+=new delegateobj(ec.display); } //调用delegate对象触发事件 protected void OnObj(System.EventArgs e) { if(this.obj!=null) { obj(this,e); } } public void RaiseEvent() { EventArgs e=new EventArgs(); OnObj(e); } static void Main(string[] args) { InvokeClass ic=new InvokeClass(); Console.WriteLine("Please input a string"); string input=Console.ReadLine(); if(input.Equals("")) { Console.WriteLine("Sorry,you don't input anything"); } else { //触发事件 ic.RaiseEvent(); } } }}