在 C# 中,在运行时创建 event handler 可以使用匿名方法、Lambda 表达式或者自定义方法。以下是一个简单的示例,展示了如何在运行时为一个事件创建 event handler:
using System;
namespace RuntimeEventHandler
{
class Program
{
static void Main(string[] args)
{
MyClass myClass = new MyClass();
// 使用匿名方法创建 event handler
myClass.MyEvent += delegate (object sender, EventArgs e)
{
Console.WriteLine("Event triggered using anonymous method");
};
// 使用 Lambda 表达式创建 event handler
myClass.MyEvent += (sender, e) =>
{
Console.WriteLine("Event triggered using Lambda expression");
};
// 使用自定义方法创建 event handler
myClass.MyEvent += MyCustomEventHandler;
myClass.TriggerEvent();
}
static void MyCustomEventHandler(object sender, EventArgs e)
{
Console.WriteLine("Event triggered using custom method");
}
}
class MyClass
{
public event EventHandler MyEvent;
public void TriggerEvent()
{
MyEvent?.Invoke(this, EventArgs.Empty);
}
}
}
在这个示例中,我们创建了一个名为 MyClass
的类,其中包含一个名为 MyEvent
的事件。然后,在 Main
方法中,我们创建了一个 MyClass
的实例,并为 MyEvent
事件添加了三个不同类型的 event handler:匿名方法、Lambda 表达式和自定义方法。最后,我们调用了 TriggerEvent
方法,以触发 MyEvent
事件,并在控制台中输出了相应的信息。
领取专属 10元无门槛券
手把手带您无忧上云