public delegate void EventHandler(object sender, EventArgs e);
public class Button: Control
{
public event EventHandler Click;
protected void OnClick(EventArgs e) {
if (Click != null) Click(this, e);
}
}
この本では、上記のコードを次のように説明しています。
Button クラスの OnClick メソッドは、Click イベントを「発生させます」。イベントを発生させるという概念は、イベントによって表されるデリゲートを呼び出すこととまったく同じです。したがって、イベントを発生させるための特別な言語構造はありません。デリゲートの呼び出しの前に、デリゲートが null でないことを確認するチェックが行われることに注意してください。
すべてのイベント ハンドラーにデリゲート インスタンスがあるのに、イベントにデリゲートが 1 つしかないことを意味するのはなぜですか? インスタンスはインスタンスであり、イベントには実際のメソッドに接続する多くのデリゲート インスタンスを含めることができます。
誰かが私のためにこの段落を理解していただければ幸いです。