在ASP.NET中,是否有理由使用EventHandler的"sender"对象?

Cod*_*num 0 asp.net asp.net-2.0

在执行大量ASP.NET页面(.NET 2.0)时,我的代码隐藏通常包含页面对象上的事件处理程序.GridView_RowCommand,Button_Click等所有常见的嫌疑人.所有EventHandler派生的东西都有一个共同点,那就是他们的第一个参数是一个对象,通常标记为"sender".

在ASP.NET代码隐藏中,我真的没有看到它的重点.如果我有GridCustomers_RowCommand并且我需要对GridCustomers做一些事情,我可以从代码隐藏中访问它而不是担心将发送者强制转换为gridview然后使用它.

我觉得我必须在这里错过一个非常重要的设计考虑因素.我对我的代码做了些什么吗?我有点可以看到,使用直接引用这种方式成为全局对象的牺牲品,但这就是ASP.NET的工作原理!我在这里看不到什么?是否有一些精湛的书籍或教程,以"正确的方式"展示如何使用ASP.NET?干净,敏捷,"真正的编码器"方式?

Nic*_*ver 6

您可能有一个用于DRY编码的事件处理程序,但有20个事件使用该事件,例如:

protected void AddClass(object sender, EventArgs e) {
   ((WebControl)sender).CssClass += " myNewClass";
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您只需编写一次代码,但许多WebControl都可以使用它(这是一个例子,根本不是特定于WebControls).

免责声明:我sender每天都在使用吗?甚至没有关闭,它有用吗?是的它可以:)