欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C# 事件的使用

程序员文章站 2022-07-16 18:45:41
...

个人理解

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

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

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();
        }
    }


}

结果展示

C# 事件的使用