// 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'; } } }