All pastes #731717 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-10-10 10:15 UTC
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';
        }
    }
}