イベントとデリゲート: 違いと応用
イベントとデリゲートの区別はすぐには明らかではないため、その使用に関して混乱が生じる可能性があります。イベントは一般にデリゲートの糖衣構文として認識されていますが、明確にする必要がある微妙なニュアンスがあります。
イベント
カスタム イベントはマルチキャスト デリゲートのスコープ修飾子であり、いくつかの機能を提供します。主な利点:
デリゲート
デリゲートはメソッドの参照に使用され、マルチキャストできるため、イベントに応答して複数のメソッドを呼び出すことができます。デリゲートの主な利点は次のとおりです。
いつ使用するか
コード例
次の例を考えてみましょう。イベントとデリゲートの両方の使用:
public class MyClass { public event EventHandler MyEvent; // Event public delegate void MyDelegate(); // Delegate public void TriggerEvent() { MyEvent?.Invoke(this, EventArgs.Empty); } public void AddDelegateHandler(MyDelegate handler) { MyDelegate += handler; // Delegate } } // Usage public class Client { public void HandleEvent(object sender, EventArgs e) { // Event handler implementation } public void HandleDelegate() { // Delegate implementation } }
このコード内:
以上がイベントとデリゲート: いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。