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)
{
...
}
次のページで、Microsoftは共有の方が優れていることを示唆しているようですが、.NET 2.0(つまり、Visual Studio 2008)以降は更新されていないことに気付きました。
http://msdn.microsoft.com/en-us/library/4ac48519%28v=vs.90%29.aspx
この場合のベストプラクティスの推奨事項を示すガイドはありますか?