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)!