C#::デリゲートのすすめ

デリゲート良いよデリゲート。ぱっと見ただの関数ポインタですけど。

namespace CSTest.Delgt
{
    public class DelegateTest
    {
        delegate void TestDelegate(int i);
        public DelegateTest()
        {
            ProcClass c2a = new ProcClass(5);
            ProcClass c2b = new ProcClass(9);
            TestDelegate delgt;
            delgt += c2a.Proc;
            delgt += c2b.Proc;
            //delgt -= c2a.Proc;
            if (delgt != null) delgt(1);
        }
    }
    public class ProcClass
    {
        int j;
        public ProcClass(int j) { this.j = j; }
        public void Proc(int i)
        {
            i++;
            Console.WriteLine("ProcClass::" + i + " " + j);
        }
    }
}

イベントリスナにも使われるだけあって、好きなだけメソッドを登録したり引っこ抜いたり出来てすごい便利。

でもあまり使いどころを思い浮かばないな。本当に使いたいときに思いつくかどうか微妙だ