C#教程
C#控制语句
C#函数
C#数组
C#面向对象
C#命名空间和异常
C#文件IO
C#集合
C#多线程
C#其它

C# 事件

C# 事件

事件是即将发生的特殊事件。这里我们以一个事件为例,微软为开发者启动事件。在本次活动中,Microsoft 希望让开发人员了解现有产品或新产品的功能。为此,Microsoft 将使用电子邮件或其他广告选项让开发人员了解事件。因此,在这种情况下,Microsoft 将作为引发事件并通知开发人员的发布者。开发人员将作为事件的订阅者来处理事件。
同样,在 C# 中,事件遵循相同的概念。在 C# 中,事件可以是订阅者、发布者、订阅者、通知和处理程序。通常,用户界面使用事件。这里我们以 Windows 中的 Button 控件为例。 Button 执行多个事件,例如单击、鼠标悬停等。自定义类包含 Event,通过它我们将通知其他订阅者类将要发生的其他事情。因此,在这种情况下,我们将定义 Event 并将事件通知其他类,其中包含事件处理程序。
事件是一个封装的委托。 C# 和 .NET 都支持带有委托的事件。当应用程序的状态发生变化时,事件和委托会向客户端应用程序发出通知。委托和事件都紧密耦合用于调度事件,并且事件处理需要委托的实现。发送事件类称为发布者,接收者类或处理事件称为订阅者。

关于事件的关键点是:

事件的关键点如下:
在 C# 中,事件处理程序将这两个参数作为输入并返回 void。 事件的第一个参数也称为源,它将发布对象。 发布者将决定我们何时必须引发事件,而订阅者将决定我们必须做出何种回应。 事件可以包含多个订阅者。 通常,我们将事件用于单用户操作,例如单击按钮。 如果事件包含多个订阅者,则同步调用事件处理程序。

事件声明

语法

public event EventHandler CellEvent;

Event 的实现步骤

在类中声明Event,首先要声明委托的事件类型。
目的sender, EventArgs e);

事件的声明

公共事件 CellEventHandler CellEvent;

事件的调用

if(CellEvent != null) CellEvent(this, e);
我们只能在声明事件的类中调用事件。

连接事件

OurEventClass.OurEvent += new ChangedEventHandler(OurEventChanged);

分离事件

OurEventClass.OurEvent-= new ChangedEventHandler(OurEventChanged);
委托作为一个函数的指针工作。它是一种引用数据类型,它保存方法的引用。 System.Delegate 类隐式派生所有委托。
可以使用 delegate 关键字声明委托,后跟签名

委托的语法

<access modifier> delegate <return type> <delegate_name>(<parameters>)

委托示例

public delegate void PrintWord(int value);
上述PrintWord委托可用于指向任何具有相同的方法使用 PrintWord 返回类型和声明的参数。这里我们将举一个声明和使用 PrintWord 委托的例子。
class Program1
{
    // declare delegate
    public delegate void PrintWord(int value);
    static void Main(string[] args)
    {
        // Print delegate points to PrintNum
        PrintWord printDel = PrintNum;
        
        // or
        // Print printDel = new Print(PrintNumber);
            
        printDel(100000);
        printDel(200);
        // Print delegate points to PrintMoney
        printDel = PrintMoney;
        printDel(10000);
        printDel(200);
    }
    public static void PrintNum(int num)
    {
        Console.WriteLine("Number: {0,-12:N0}",num);
    }
    public static void PrintMoney(int money)
    {
        Console.WriteLine("Money: {0:C}", money);
    }
}
输出:
Events in C#
在上面的例子中,我们声明了 PrintWord 委托,它接受 int 类型参数并返回 void。在 main() 方法中,我们声明了 PrintWord 类型的方法并分配了 PrintNum 名称的方法。现在我们将调用 PrintWord 委托,该委托又调用 PrintNum 方法。同样,如果将 PrintWord 委托变量分配给 PrintMoney 方法,则这将调用 PrintMoney 方法。
此外,我们可以使用 new 运算符创建委托对象并指定其名称方法,如下图:
PrintWord printDel = new PrintWord(PrintNum);
可以声明Delegates,如下图:
public delegate void someEvent();
public organize event
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4