在 WinForms 解决方案中,您有多个相同类型的控件。您需要为每个控件添加一个事件处理程序,并且当前事件处理程序将执行相同的操作。您不希望它们之间有任何差异。
例如:
ScheduledPatientsGrid.ProcessGridKey += ScheduledPatientsGrid_ProcessGridKey;
RecentPatientsGrid.ProcessGridKey += RecentPatientsGrid_ProcessGridKey;
RecentPatientsGrid.ProcessGridKey += RecentPatientsGrid_ProcessGridKey;
...
private void ScheduledPatientsGrid_ProcessGridKey(object sender, KeyEventArgs e)
{
...
}
private void RecentPatientsGrid_ProcessGridKey(object sender, KeyEventArgs e)
{
...
}
private void PatientsGrid_ProcessGridKey(object sender, KeyEventArgs e)
{
...
}
现在是在如下所示的不同事件之间共享单个事件处理程序更好,还是像上面显示的代码示例中使用不同的事件处理程序更好?
ScheduledPatientsGrid.ProcessGridKey += ProcessGridKey;
RecentPatientsGrid.ProcessGridKey += ProcessGridKey;
RecentPatientsGrid.ProcessGridKey += ProcessGridKey;
private void ProcessGridKey(object sender, KeyEventArgs e)
{
...
}
在接下来的页面中,微软似乎建议共享更好,但是我注意到自 .NET 2.0 以来他们没有更新它(即:Visual Studio 2008)
http://msdn.microsoft.com/en-us/library/4ac48519%28v=vs.90%29.aspx
在这种情况下,是否有提供最佳实践建议的指南?