• 事件(Event)


    C#的事件,就是定义一个委托事件,事件就是一个委托,然后定义一个触发方法,将你需要激活的事件放入委托事件中,然后调用触发方法,就可以激活事件

    转载

    事列代码

    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading.Tasks;
    using System.Web.Script.Serialization;
    
    namespace ConsoleApp1
    {
    
        public class Program
        {
            //自定义委托
            public delegate void MarryHandler(string msg);
            //使用自定义委托类型定义事件,事件名为MarrEvent
            public event MarryHandler MarrayEvent;
            static void Main(string[] args)
            {
    
                //初始化新郎官对象
                Program bridegroom = new Program();
    
                //实例化朋友对象
                Friend friend1 = new Friend("张三");
                Friend friend2 = new Friend("李四");
                Friend friend3 = new Friend("王五");
    
                //使用"+="订阅消息
                bridegroom.MarrayEvent += new MarryHandler(friend1.SendMessage);
                bridegroom.MarrayEvent += new MarryHandler(friend2.SendMessage);
    
                //使用"-="取消消息
                bridegroom.MarrayEvent -= new MarryHandler(friend2.SendMessage);
    
                //发出通知
                bridegroom.OnMarriageComing("到时来参见婚礼!");
                Console.ReadLine();
    
                //输出结果为
                //到时来参加婚礼!
                //张三收到了,到时候来参加
            }
            public void OnMarriageComing(string msg)
            {
                //判断是否绑定了事件处理方法
                if (MarrayEvent != null)
                {
                    //触发事件
                    MarrayEvent(msg);
                }
            }
        }
        //朋友类
        public class Friend
        {
            //字段
            public string Name;
            //构造函数
            public Friend(string name)
            {
                Name = name;
            }
    
            //事件处理函数,该函数符合MarryHandler委托的定义
            public void SendMessage(string mssage)
            {
                //输出通知消息
                Console.WriteLine(mssage);
                //对事件做出处理
                Console.WriteLine(this.Name + "收到了,到时候来参加");
            }
        }
    }
    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading.Tasks;
    using System.Web.Script.Serialization;
    
    namespace ConsoleApp1
    {
    
        public class Program
        {
            //自定义委托
            public delegate void MarryHandler(object sender, MarryEventArgs e);
            //使用自定义委托类型定义事件,事件名为MarrEvent
            public event MarryHandler MarrayEvent;
            static void Main(string[] args)
            {
    
                //初始化新郎官对象
                Program bridegroom = new Program();
    
                //实例化朋友对象
                Friend friend1 = new Friend("张三");
                Friend friend2 = new Friend("李四");
                Friend friend3 = new Friend("王五");
    
                //使用"+="订阅消息
                bridegroom.MarrayEvent += new MarryHandler(friend1.SendMessage);
                bridegroom.MarrayEvent += new MarryHandler(friend2.SendMessage);
    
                //使用"-="取消消息
                bridegroom.MarrayEvent -= new MarryHandler(friend2.SendMessage);
    
                //发出通知
                bridegroom.OnMarriageComing("到时来参见婚礼!");
                Console.ReadLine();
    
                //输出结果为
                //到时来参加婚礼!
                //张三收到了,到时候来参加
            }
           
    
            //发出事件
            public void OnMarriageComing(string msg)
            {
                //判断是否绑定了事件处理方法
                if (MarrayEvent != null)
                {
                    //触发事件
                    MarrayEvent(this, new MarryEventArgs(msg));
                }
            }
        }
        //朋友类
        public class Friend
        {
            //字段
            public string Name;
            //构造函数
            public Friend(string name)
            {
                Name = name;
            }
    
            //事件处理函数,该函数符合MarryHandler委托的定义
            public void SendMessage(object s, MarryEventArgs e)
            {
                //输出通知消息
                Console.WriteLine(e.Message);
                //对事件做出处理
                Console.WriteLine(this.Name + "收到了,到时候来参加");
            }
    
        }
        //自定义事件类,并使其带有事件数据
        public class MarryEventArgs : EventArgs
        {
            public string Message;
            public MarryEventArgs(string msg)
            {
                Message = msg;
            }
        }
    }
  • 相关阅读:
    eclipse下c/cpp " undefined reference to " or "launch failed binary not found"问题
    blockdev 设置文件预读大小
    宝宝语录
    CentOS修改主机名(hostname)
    subprocess报No such file or directory
    用ldap方式访问AD域的的错误解释
    英特尔的VTd技术是什么?
    This virtual machine requires the VMware keyboard support driver which is not installed
    Linux内核的文件预读详细详解
    UNP总结 Chapter 26~29 线程、IP选项、原始套接字、数据链路访问
  • 原文地址:https://www.cnblogs.com/macT/p/12105607.html
Copyright © 2020-2023  润新知