C# 事件的使用

个人理解

  • 个人理解是一个订阅发布的关系。发布者发布一个事件,订阅者都去订阅。当这个事件触发时,订阅者就收到了通知,进而触发自己的执行方法。当然,发布者发布的事件,订阅者订阅时候采用委托的形式。

事件中发布者和订阅者的关系图

在这里插入图片描述

对应实现

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;

namespace EventDemo
{
    class Program
    {
        public delegate void Hander();

        public class Tiger
        {
            //发布者,也就是事件的拥有者
            public event Hander Comming;

            public void TigerComming()
            {
                Comming();

            }

        }

        public class Sheep
        {
            public Sheep(Tiger _tiger)
            {
                _tiger.Comming += Run;//在发布者的私有委托里增加方法
            }
            //事件处理函数
            public void Run() 
            {
                Console.WriteLine("sheep run!");

            }


        }

        public class Rabbit
        {
            public Rabbit(Tiger _tiger)
            {
                _tiger.Comming += Run;

            }

            public void Run()
            {
                Console.WriteLine("rabbit run!");
            }

        }
        static void Main(string[] args)
        {
            var tiger = new Tiger();
            var sheep = new Sheep(tiger);
            var rabbit = new Rabbit(tiger);
            tiger.TigerComming();
            Console.ReadLine();
        }
    }


}

结果展示

在这里插入图片描述

发布了69 篇原创文章 · 获赞 0 · 访问量 1007

猜你喜欢

转载自blog.csdn.net/qq_21209307/article/details/104950836