using System;
public class EventTest
{
/// <summary>
/// Define an event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public delegate void MyEventHandler(object sender, System.EventArgs e);
/// <summary>
/// All the events
/// </summary>
private static class MyEvents
{
public static void OutputEvent(object sender, System.EventArgs e)
{
Console.WriteLine(string.Format("Your input:{0}",InputString));
}
public static void DealTithEmpty(object sender, System.EventArgs e)
{
Console.WriteLine(string.Format("Your input was empty!"));
}
}
/// <summary>
/// Assert an event
/// </summary>
private event MyEventHandler myevent;
/// <summary>
/// Reserve input string
/// </summary>
public static string InputString { get; set; }
/// <summary>
/// Load and trigger this event
/// </summary>
/// <param name="input"></param>
public void RaiseEvent(string input)
{
InputString=input;
EventArgs e = new EventArgs();
if (InputString == null || InputString == string.Empty)
this.myevent += new MyEventHandler(MyEvents.DealTithEmpty);
else
this.myevent += new MyEventHandler(MyEvents.OutputEvent);
myevent(this, e);
}
/// <summary>
/// Main method
/// </summary>
public static void Main()
{
bool ifCycle = true;
while (ifCycle)
{
EventTest et = new EventTest();
Console.Write("Please input:");
string input = Console.ReadLine();
if (input.ToLower().Trim()!= "break")
{
et.RaiseEvent(input);
}
else
{
ifCycle = false;
}
}
}
}