2010年1月8日金曜日

delegateキーワード、eventキーワードを使用してDelegate,Eventを定義し、Eventが発生する処理を実行してみる。

using System;


// Delegateを定義
delegate void SampleDelegate();


class SampleClass
{
    public event SampleDelegate even = () => { };
    public event SampleDelegate uneven = () => { };
    public void printOut()
    {
        for (int i = 0; i < 10; i++)
        {
            Console.Write(i);
            if (i % 2 == 0)
            {
                even();
            }
            else if (i % 2 == 1)
            {
                uneven();
            }
            Console.WriteLine();
        }
    }
}


class MainClass
{
    static void Main()
    {
        // SampleClassをインスタンス化
        SampleClass sample = new SampleClass();
        // ラムダ式でEventを登録
        sample.even += () => Console.Write(":Even");
        sample.uneven += () => Console.Write(":Uneven");
        /* 出力値
         * 0:Even
         * 1:Uneven
         * 2:Even
         * 3:Uneven
         * 4:Even
         * 5:Unevven
         * 6:Even
         * 7:Uneven
         * 8:Even
         * 9:Uneven
         */ 
        sample.printOut();
    }
}

0 コメント:

コメントを投稿