自学内容网 自学内容网

c#中的事件

事件的组成

1.事件的拥有者

2.事件成员

3.事件的响应者

4.事件处理器

5.事件订阅

namespace _7._15day03
{
    public delegate void SayhelloDlg(string content);
    internal class Program
    {
        //声明一个SayhelloDlg类型的事件
        public static event SayhelloDlg SayHelloEvent;
        static void Main(string[] args)
        {
            //声明委托
            //使用委托的方法
            //委托的解释:将方法以变量的形式传递,并且以方法的形式执行
​
            SayhelloDlg dlg = SayHello;
            dlg += SayGoodBye;
            dlg -= SayGoodBye;
            dlg("老王");
            Console.WriteLine("-------------------------------");
            SayhelloDlg dlg1 = delegate (string name)
            {
                Console.WriteLine($"{name}这是一个匿名函数");
            };
            dlg1("老王");
            Console.WriteLine("-------------------------------");
            //Lamda语句
            SayhelloDlg dlg2 = (name) =>
            {
                Console.WriteLine($"{name}这是Lamda语句");
            };
            dlg2("老王");
​
​
            Console.WriteLine("-------------事件的写法---------------");
            //注册事件
            SayHelloEvent += Program_sayHelloEvent;
            if (SayHelloEvent != null)
            {
                SayHelloEvent("老王");
            }
​
​
​
        }
        private static void Program_sayHelloEvent(string name)
        {
            Console.WriteLine($"我是事件!!");
        }
​
​
        public static void SayHello(string name)
        {
            Console.WriteLine($"{name},你好呀");
        }
        public static void SayGoodBye(string name)
        {
            Console.WriteLine($"{name},再见");
        }
    }
}
​

关于事件的书写

委托实例是可以定义在方法里面的,但是事件却是不可以定义到方法里面的 事件其实是一个全局的委托 加上event关键字 目的就是让我们这个委托对象必须是全局的委托实例 要定义在函数外面 类的里面


原文地址:https://blog.csdn.net/weixin_64532720/article/details/140447361

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!