【C#】事件总结

事件是委托的一个很重要的应用,其实事件就是委托的实例,事件一般由外部触发产生

例如:当我们设计一个按钮的控件的时候,我们可以捕获到用户点击按钮,但是我们不知道用户点击按钮时需要进行什么操作,这个时候就可以通过事件来让用户自己定义按钮的操作

下面看看事件的使用

1、事件定义

  1)定义事件委托  2)定义事件参数  3)实例化委托(即事件)  4)定义触发事件函数(用来触发事件)

    public delegate void MyEventDelegate(object sender, MyEventArgs e);
    public class EventDemo
    {
        //定义事件
        public event MyEventDelegate OnMyEvent;
        
        //定义事件触发函数
        public void OnEvent()
        {
            if (OnMyEvent != null)
            {
                //执行注册过的事件函数
                OnMyEvent(this, new MyEventArgs("事件被触发"));  
            }
        }
    }
    //定义事件参数类
    public class MyEventArgs:EventArgs
    {
        public string Msg { get; set; }
        public MyEventArgs(string msg)
        {
            this.Msg = msg;
        }
    }

2、事件的使用

  注册事件,触发事件

    class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            EventDemo demo = new EventDemo();
            demo.OnMyEvent += new MyEventDelegate(p.demo_OnMyEvent);    //注册事件
            
            demo.OnEvent(); //触发事件
        }

        public void demo_OnMyEvent(object sender, MyEventArgs e)
        {
            Console.WriteLine("用户自定义的事件函数被执行");
        }
    }
原文地址:https://www.cnblogs.com/bomo/p/2865938.html