ASP.NET事件处理程序基本问题

ASP.NET事件处理程序基本问题,asp.net,Asp.net,我很困惑,想确认以下陈述- 我们可以为同一事件创建多个事件句柄方法吗 我想是的,因为这是超载的概念?对吧? 请纠正我的理解或建议 谢谢。您可以使用任意数量的事件处理程序订阅事件。比如说, Button.Click += OnClick; Button.Click += OnClick2; Button.Click += new EventHandler(OnClick3); // C# 1 syntax public void OnClick(object sender, EventA

我很困惑,想确认以下陈述-

我们可以为同一事件创建多个事件句柄方法吗

我想是的,因为这是超载的概念?对吧?

请纠正我的理解或建议


谢谢。

您可以使用任意数量的事件处理程序订阅事件。比如说,

Button.Click += OnClick;
Button.Click += OnClick2;    
Button.Click += new EventHandler(OnClick3); // C# 1 syntax

public void OnClick(object sender, EventArgs e)
{
     // do something
}

public void OnClick2(object sender, EventArgs e)
{
    // do something 2!
} 

public void OnClick3(object sender, EventArgs e)
{
    // do something 3!
}

这不是方法重载,而是使用.NET事件模型,它是的一个实现。有关更多详细信息,请查看

这不是过载。重载为diff参数类型和count提供相同的方法名,因为它有助于记忆函数名。
但是订阅事件并不是重载,因为您不能有diff参数类型,否则您的事件处理程序将无法注册。这个注册是使用一些数据结构完成的,比如arraylist(例如,保存一个已注册事件处理程序的列表)。

这就是事件点——一个对象发布它可能引发特定类型事件的事实,订阅者将自己连接到该事件

当发布者触发事件时,将通知所有订阅者并调用其指定的方法

例如,在笔记本电脑上,Windows可能会发布电池电量不足事件,应用程序可以将其连接到该事件,以便调整性能以节约能源