カテゴリー
C

独習C#第3版 イベントマルチキャスト

using System;

namespace Chapter01All
{
    class DelegateCalcs
    {
        delegate void MyEventHandler(int a, int b);
        class MyEvent
        {
            public event MyEventHandler SomeEvent;
            public void Fire(int a, int b)
            {
                if (SomeEvent != null)
                    SomeEvent(a, b);
            }
        }
        class X
        {
            public void  Xhandler(int a, int b)
            {
                Console.WriteLine("和:" + (a + b));
            }
        }
        class Y
        {
            public void Yhandler(int a, int b)
            {
                Console.WriteLine("差:" + (a - b));
            }
        }
        class EventDemo
        {
            static void Handler(int a, int b)
            {
                Console.WriteLine("積:"+( a * b));
            }
              static void Main()
            {
                MyEvent evt = new MyEvent();
                X xOb = new X();
                Y yOb = new Y();
                evt.SomeEvent += xOb.Xhandler;
                evt.SomeEvent += yOb.Yhandler;
                evt.SomeEvent += Handler;
                evt.Fire(5, 10);
                Console.WriteLine();
                evt.Fire(10, 20);
            }
        }
    }
}

 和、差、積でやって見ましたが、本質が分かってないので、例題に沿って、組み込んでみました。delegate宣言がvoidであること、FireとSomeEventの関係などが分かってませんね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

inserted by FC2 system