• Net中事件的高级用法之三


    Net中事件的高级用法之三

    1.事件的高级应用

    使用事件可以解除代码耦合

    2.事件高级应用实例

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace MyEvent
    {
        public delegate void MiaoEventDelegate();
        public class Cat
        {
            public event MiaoEventDelegate MiaoEventHandler;
            public void Miao()
            {
                Console.WriteLine("猫,苗一声");
                Mouse.Run();
                Dog.Wang();
                Neighbor.Awake();
                Stealer.Hide();
                Baby.Dry();
            }
            public void MiaoEvent(){
                Console.WriteLine("**************MiaoEvent*****************");
                Console.WriteLine("另外一只猫,喵一声");
                if (MiaoEventHandler !=null)
                {
                    MiaoEventHandler();
                }
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace MyEvent
    {
        public class Baby
        {
            public static void Dry()
            {
                Console.WriteLine("小孩子哭");
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace MyEvent
    {
        public class Dog
        {
            public static void Wang()
            {
                Console.WriteLine("狗叫");
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace MyEvent
    {
        public class Mouse
        {
            public static void Run()
            {
                Console.WriteLine("老鼠跑");
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace MyEvent
    {
        public class Neighbor
        {
            public static void Awake()
            {
                Console.WriteLine("邻居被吵醒");
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace MyEvent
    {
        public class Stealer
        {
            public static void Hide(){
                Console.WriteLine("小偷藏起来");
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace MyEvent
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("欢迎来的流星小子博客学习");
                Cat cat = new Cat();
               // cat.Miao();
                cat.MiaoEventHandler += Mouse.Run;
                cat.MiaoEventHandler += Dog.Wang;
                cat.MiaoEventHandler += Neighbor.Awake;
                cat.MiaoEventHandler += Stealer.Hide;
                cat.MiaoEventHandler += Baby.Dry;
                cat.MiaoEvent();
    
                Console.Read();
            }
        }
    }
  • 相关阅读:
    线上崩溃... MediaPlayerNative: error (1, -2147483648)
    Android Notification cancel和cancelAll方法无效问题
    Android ButterKnife 找不到符号
    Android日历组件
    Android dimen适配
    Android View的invalidate()原理
    Android Camera坐标系三维图及正向绕行方向
    Android 自定义多选的 Spinner
    Android中PorterDuff.Mode【转】
    java面向对象的注意点2
  • 原文地址:https://www.cnblogs.com/dongh/p/14768333.html
Copyright © 2020-2023  润新知