public event EventHandler MyEvent;其中:EventHandler 表示事件">

c#怎么触发事件

来源:这里教程网 时间:2026-02-21 16:48:55 作者:

如何触发 C# 中的事件

在 C# 中,事件是用于向感兴趣的侦听器通知状态更改或行为的一种机制。触发事件涉及以下步骤:

1. 声明和引发事件

要在类中声明事件,请使用以下语法:

<code class="c#">public event EventHandler<TEventArgs> MyEvent;</code>

其中:

EventHandler<teventargs></teventargs>
表示事件的委托类型,用于接收事件参数。
MyEvent
是事件的名称。

要引发事件,请调用委托的

Invoke
方法,并将事件参数作为参数传递:

<code class="c#">MyEvent.Invoke(this, args);</code>

2. 注册和取消注册事件处理程序

要接收事件通知,对象可以使用

+=
运算符注册事件处理程序:

<code class="c#">myObject.MyEvent += MyEventHandler;</code>

其中

MyEventHandler
是定义用于处理事件的委托方法。

要取消注册事件处理程序,请使用

-=
运算符:

<code class="c#">myObject.MyEvent -= MyEventHandler;</code>

3. 同步和异步事件

C# 中的事件可以是同步或异步的。

同步事件:事件处理程序在调用
Invoke
方法后立即执行。
异步事件:事件处理程序在调用
Invoke
方法后在单独的线程上执行。

要声明异步事件,请使用

async
关键字:

<code class="c#">public event AsyncEventHandler<TEventArgs> MyEvent;</code>

示例:

以下是一个触发同步事件的示例:

<code class="c#">public class MyObject
{
    public event EventHandler<MyEventArgs> MyEvent;
    public void TriggerEvent()
    {
        MyEvent?.Invoke(this, new MyEventArgs());
    }
}</code>

以下是如何在另一个对象中注册和处理此事件的示例:

<code class="c#">public class MyListener
{
    public void MyEventHandler(object sender, MyEventArgs e)
    {
        // 处理事件
    }
}</code>

事件提供了一种灵活且高效的方式来实现观察者模式,使对象能够通信并对系统中的变化做出反应。

相关推荐