第46章 デリゲートをマルチキャストする


前章でも書いたように、デリゲートには複数のメソッドを登録することができます。 これをデリゲートのマルチキャストといいます。ただし、マルチキャストできるのは 戻り値がvoid型の時のみです。



マルチキャストする方法は簡単です。デリゲートのインスタンスに+=演算子で別のデリゲートのインスタンスを加えます。-=演算子で取り除くこともできます。

では、サンプルを見てみましょう。

// multicast01.cs

using System;

delegate void MD();

class multicast01
{
    void show1()
    {
        Console.WriteLine("show1です");
    }
    void show2()
    {
        Console.WriteLine("show2です");
    }
    void show3()
    {
        Console.WriteLine("show3です");
    }
    public static void Main()
    {
        multicast01 m = new multicast01();

        MD md1 = new MD(m.show1);
        MD md2 = new MD(m.show2);
        MD md3 = new MD(m.show3);

        MD md;
        md = md1;
        md += md2;
        md += md3;
        md();

        Console.WriteLine("----------");
        md -= md2;
        md();

        Console.WriteLine("----------");
        md -= md1;
        md();

        Console.WriteLine("----------");
        md += md3;
        md += md3;
        md();
    }
}
サンプルからわかるように、メソッドを重複して登録することもできます。

実行結果は次のようになります。




[C# Index] [総合Index] [Previous Chapter] [Next Chapter]

Update 21/Sep/2006 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。