在WinForms解决方案中,您有多个相同类型的控件。您需要为每个控件添加事件处理程序,并且当前时间事件处理程序将执行相同的操作。您不希望它们在未来有任何差异的原因。例如:
现在,是将单个事件处理程序共享于不同的事件之间,如下所示,还是像上面的代码示例中使用不同的事件处理程序更好?
在下一页中,微软似乎暗示分享是更好的,但我注意到自.NET 2.0(即Visual Studio 2008)以来他们没有更新过它。
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
这种情况下是否有一个指南可以提供最佳实践建议?
MyButton.Click += MyButton_Click
对我来说一点信息也没有,告诉我不了发生了什么。MyButton.Click += ValidateFormInput
告诉我按钮被点击时会执行验证操作;它更有用且易读。:D - Chris Sinclair