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关键字 目的就是让我们这个委托对象必须是全局的委托实例 要定义在函数外面 类的里面

相关推荐

  1. c#事件

    2024-07-16 10:00:02       26 阅读
  2. c#事件

    2024-07-16 10:00:02       24 阅读
  3. C# 事件

    2024-07-16 10:00:02       21 阅读
  4. 深入理解C#事件驱动编程

    2024-07-16 10:00:02       44 阅读
  5. 深入理解 C# Unity 事件和委托

    2024-07-16 10:00:02       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 10:00:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 10:00:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 10:00:02       58 阅读
  4. Python语言-面向对象

    2024-07-16 10:00:02       69 阅读

热门阅读

  1. QT下,如何获取控制台输入

    2024-07-16 10:00:02       25 阅读
  2. Ajax是什么?如何在HTML5中使用Ajax?

    2024-07-16 10:00:02       24 阅读
  3. C 语言 do while 语句

    2024-07-16 10:00:02       25 阅读
  4. Apache Spark 的基本概念和在大数据分析中的应用

    2024-07-16 10:00:02       21 阅读