同じ名前のイベント ハンドラーに割り当てられている場合、イベントはどのメソッドを呼び出すかをどのように認識しますか?
次の点を考慮してください。
public static void ImplementExitOnEscape(Window window)
{
window.KeyDown += Window_KeyDown;
}
private static void Window_KeyDown(object sender, KeyEventArgs e)
{
var window = sender as Window;
// Close window when pressing the escape key.
if (e.Key == Key.Escape) if (window != null) window.Close();
}
ImplementExitOnEscape(this)
ウィンドウを呼び出すだけでなく、次のことも行います。
KeyDown += Window_KeyDown;
void Window_KeyDown(object sender, KeyEventArgs e)
{
MessageBox.Show("Key Down");
}
同じ名前であっても、両方のメソッドが実行されます。同じイベント ハンドラーを 1 つのイベントに複数回割り当てることができ、メソッドが割り当てられた回数だけ呼び出されることは既に知っていますが、同じ名前の 2 つの異なるイベント ハンドラーの違いはどのように生じるのでしょうか?