//********************************************/
/**//* 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();
}
}
}
}