您的位置:首页 > 其它

Event/Delegate的一个不错实例

2008-11-20 17:58 351 查看
Code

namespace MicrosoftEventPattern

{

    public class MyClass

    {

        public delegate void MyDelegate(object sender, MyEventArgs e);

        public event MyDelegate MyEvent;

        public class MyEventArgs : EventArgs

        {

            public readonly string message;

            public MyEventArgs(string message)

            {

                this.message = message;

            }

        }

        //this method will be used to raise the event.

        public void RaiseEvent(string msg)

        {

            if (MyEvent != null)

                MyEvent(this, new MyClass.MyEventArgs(msg));

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            MyClass myClass1 = new MyClass();

            myClass1.MyEvent += new MyClass.MyDelegate(myClass1_MyEvent);

            Console.WriteLine("Please enter a message\n");

            string msg = Console.ReadLine();

            //here is we raise the event.

            myClass1.RaiseEvent(msg);

            Console.Read();

        }

        static void myClass1_MyEvent(object sender, MyClass.MyEventArgs e)

        {

            if (sender is MyClass)

            {

                MyClass myClass = (MyClass)sender;

                Console.WriteLine("Your Message is: {0}", e.message);

            }

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐