天天看點

貓叫,老鼠逃跑,主人驚醒

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace test

{

    //貓叫,老鼠逃跑,主人驚醒

    class Program

    {

        static void Main(string[] args)

        {

            Cat c = new Cat("加菲貓");

            Mouse m = new Mouse("米老鼠");

            Person p = new Person("湯姆");

           c.MyEvent += new NumberChangedEventHandler(c.OnDoSomeThing);

           c.MyEvent += new NumberChangedEventHandler(m.OnDoSomeThing);

            c.MyEvent += new NumberChangedEventHandler(p.OnDoSomeThing);

            c.Cry();//貓叫

            Console.Read();

        }

    }

    public delegate void NumberChangedEventHandler();

    public class Cat 

    {

        public event NumberChangedEventHandler MyEvent;

        private string name;

        public Cat(string name)

        {

            this.name = name;

        }

        public void Cry()

        {

            if (MyEvent != null)

            {

                Delegate[] delegates = MyEvent.GetInvocationList();

                foreach (Delegate del in delegates)

                {

                    object o = del.DynamicInvoke();

                }

            }

        }

        public void OnDoSomeThing()

        {

            Console.WriteLine("貓" + name + "叫");

        }

    }

    public class Mouse 

    {

        private string name;

        public Mouse(string name)

        {

            this.name = name;

        }

        public   void OnDoSomeThing()

        {

            Console.WriteLine("老鼠" + name + "跑");

        }

    }

    public class Person 

    { 

        private string name;

        public Person(string name)

        {

            this.name = name;

        }

        public   void OnDoSomeThing()

        {

            Console.WriteLine("主人" + name + "驚醒");

        }

    }

}

錯誤請指正

轉載于:https://www.cnblogs.com/aaa1028/archive/2011/05/10/2042141.html