rendered paste body// Events.cs - Using events
//-----------------------------------------------------------------
using System;
delegate void CharEventHandler(object source, CharEventArgs e);
public class CharEventArgs : EventArgs
{
public char CurrChar;
public CharEventArgs(char CurrChar)
{
this.CurrChar = CurrChar;
}
}
class CharChecker
{
char curr_char;
public event CharEventHandler TestChar;
public char Curr_Char
{
get { return curr_char; }
set
{
if (TestChar != null)
{
CharEventArgs args = new CharEventArgs(value);
TestChar(this, args);
curr_char = args.CurrChar;
}
}
}
}
class Events2
{
public static void Main()
{
CharChecker tester = new CharChecker();
tester.TestChar += new CharEventHandler(Drop_A);
tester.TestChar += new CharEventHandler(Change_D);
tester.Curr_Char = 'B';
Console.WriteLine("{0}", tester.Curr_Char);
tester.Curr_Char = 'r';
Console.WriteLine("{0}", tester.Curr_Char);
tester.Curr_Char = 'a';
Console.WriteLine("{0}", tester.Curr_Char);
tester.Curr_Char = 'd';
Console.WriteLine("{0}", tester.Curr_Char);
Console.ReadKey(false);
}
static void Drop_A(object source, CharEventArgs e)
{
if (e.CurrChar == 'a' || e.CurrChar == 'A')
{
Console.WriteLine("Don't like 'a'!");
e.CurrChar = 'X';
}
}
// new event handler....
static void Change_D(object source, CharEventArgs e)
{
if (e.CurrChar == 'd' || e.CurrChar == 'D')
{
Console.WriteLine("D's are good!");
e.CurrChar = 'Z';
}
}
}