イベント

3775 ワード

構文コード
class Program

    {

        static void Main(string[] args)

        {

            var e = new EventTest(5);

            e.SetValue(100);

            e.ChangeNum += new EventTest.NumDelegate(EventTest.EventFired);

            e.SetValue(100);

            e.SetValue(200);

            Console.ReadLine();

        }

    }

    class EventTest

    {

        private int value;

        public delegate void NumDelegate();

        public event NumDelegate ChangeNum;

        public EventTest(int num)

        {

            SetValue(num);

        }

        public void SetValue(int Num)

        {

            if (value != Num)

            {

                value = Num;

                OnNumChanged();

            }

            else

            {

                Console.WriteLine(" ");

            }

        }

        public static void EventFired()

        {

            Console.WriteLine(" ");

        }

        protected virtual void OnNumChanged()

        {

            if (ChangeNum != null)

            {

                ChangeNum();

            }

            else

            {

                Console.WriteLine(" ");

            }

        }

    }

イベントキーワードを追加すると
+=または-=操作のみ、=操作はできません