EventHandler筆記

  • 1190
  • 0

摘要:EventHandler筆記

 class Program
    {      

        static void Main(string[] args)
        {
            HasEvent he = new HasEvent();
            he.SampleEvent +=
                       new EventHandler<MyMessageArgs>(SampleEventHandler);
            he.DemoEvent("Hey there, Bruce!");
            he.DemoEvent("How are you today?");
            he.DemoEvent("I'm pretty good.");
            he.DemoEvent("Thanks for asking!");
        }

        private static void SampleEventHandler(object src, MyMessageArgs mea)
        {
            Console.WriteLine(mea.msg);
        }
    }

    public class MyMessageArgs:EventArgs
    {
        public string msg { getset; }
        public MyMessageArgs(string message) { msg = message; }      
    }

    public class HasEvent
    {
        public event EventHandler<MyMessageArgs> SampleEvent;

        public void DemoEvent(string val)
        {
            // Copy to a temporary variable to be thread-safe.
            EventHandler<MyMessageArgs> temp = SampleEvent;
            if (temp != null)
                temp(thisnew MyMessageArgs(val));
        }
    }