using System;
using System.Collections.Generic;
using System.Text;

namespace L6_3
{
    public static class Sun
    {
        public static event EventHandler OnRise;

        public static void Rise()
        {
            Console.WriteLine("太阳从东方升起");
            if (OnRise != null)
                OnRise(null, null);
        }
    }
    public class Cock
    {
        private string _name;

        public Cock(string name)
        {
            _name = name;
            Sun.OnRise += new EventHandler(Sun_OnRise);
        }
        private void Sun_OnRise(object sender, EventArgs e)
        {
            Console.WriteLine("公鸡{0}:", _name);
            Console.WriteLine("雄鸡一声天下白!");
            this.Sing();
        }
        public event EventHandler OnSing;

        public void Sing()
        {
            Console.WriteLine("喔喔喔。。。。");
            if (OnSing != null)
                OnSing(this, null);
        }
    }
    public class Host
    {
        private string _name;

        public Host(string name)
        {
            _name = name;
        }
        public event EventHandler OnGetup;

        public void Getup()
        {
            Console.WriteLine("日出而作。。。");
            if (OnGetup != null)
                OnGetup(this, null);
        }
        public void Foster(Cock c1)
        {
            c1.OnSing += new EventHandler(c1_OnSing);
        }
        private void c1_OnSing(object sender, EventArgs e)
        {
            Console.WriteLine("主人{0}:", _name);
            Console.WriteLine("闻鸡起舞!");
            this.Getup();
       
    }
        public class Dog
        {
            private string _name;
            public Dog(string name)
            {
                _name = name;

            }
            public event EventHandler Owner_OnGetup;

            public void Host_OnGetup(object sender, EventArgs e)
            {
                Console.WriteLine("阿黄{0}:", _name);
                Console.WriteLine("大狗叫。。。");
                this.Sing();
            }
            public event EventHandler OnSing;

            public void Sing()
            {
                Console.WriteLine("汪汪。。。");
                if (OnSing != null)
                    OnSing(this, null);
            }
        }
        public class Cat
        {

            private string _name;
            public Cat(string name)
            {
                _name =name ;
            }
            public event EventHandler Owner_OnGetup;
            
            public void Host_OnGetup(object sender, EventArgs e)
            {
                Console.WriteLine("咪咪{0}:", _name);
                Console.WriteLine("小猫可爱");
                this.Sing();
            }
            public event EventHandler OnSing;

            public void Sing()
            {
                Console.WriteLine("喵喵。。。");
                if (OnSing != null)
                    OnSing(this, null);
            }
        }
        static void Main()
        {
            Cock cock1 = new Cock("花花");
            Host host1 = new Host("祖0");
            host1.Foster(cock1);
            Dog dog1 = new Dog("阿黄");
            dog1.Owner = host1;
            Cat cat1 = new Cat("咪咪");
            dog1.Owner = host1;
            Sun.Rise();

        }
}
}
看看错在哪里,并改一下啊