网站换模板有影响吗,网络运维工程师面试题,番禺外贸型网站建设,wordpress侧边二级导航菜单1.事件的概念 在C#中#xff0c;事件是一种特殊的委托类型#xff0c;用于在对象之间提供一种基于观察者模式的通知机制。事件的发送方定义了一个委托#xff0c;委托类型的声明包含了事件的签名#xff0c;即事件处理器方法的签名。事件的订阅者可以通过运算符来注册事件…1.事件的概念 在C#中事件是一种特殊的委托类型用于在对象之间提供一种基于观察者模式的通知机制。事件的发送方定义了一个委托委托类型的声明包含了事件的签名即事件处理器方法的签名。事件的订阅者可以通过运算符来注册事件处理器。当事件发送方触发事件时所有注册的事件处理器会被依次调用。
2.示例代码 下面是一个简单的C#事件的例子
using System;public class EventExample
{// 定义委托类型它具有事件处理器的签名public delegate void SimpleEventHandler(object sender, EventArgs e);// 声明事件public event SimpleEventHandler SimpleEvent;// 触发事件的方法protected virtual void OnSimpleEvent(EventArgs e){SimpleEventHandler handler SimpleEvent;handler?.Invoke(this, e);}// 示例方法可以在需要的时候触发事件public void RaiseEvent(){OnSimpleEvent(EventArgs.Empty);}
}public class EventSubscriber
{public void Subscribe(EventExample eventExample){// 订阅事件eventExample.SimpleEvent EventHandler;}private void EventHandler(object sender, EventArgs e){Console.WriteLine(Event triggered.);}
}class Program
{static void Main(){EventExample eventSource new EventExample();EventSubscriber subscriber new EventSubscriber();subscriber.Subscribe(eventSource);// 触发事件eventSource.RaiseEvent();}
} 在这个例子中EventExample 类定义了一个委托 SimpleEventHandler 和一个基于该委托类型的事件 SimpleEvent。OnSimpleEvent 方法是触发事件的方法它检查事件是否有注册的处理器并按顺序调用它们。RaiseEvent 方法用于触发事件。EventSubscriber 类中的 Subscribe 方法用于订阅事件并提供了事件处理器 EventHandler。在 Main 方法中我们创建了 EventExample 和 EventSubscriber 的实例并通过 Subscribe 方法将 EventHandler 注册到 SimpleEvent 上。最后通过 RaiseEvent 方法触发了事件控制台上输出了 Event triggered.。