C#-イベント

Eventsキーの押下、クリック、マウスの動きなどのユーザーアクション、またはシステム生成通知などの発生です。アプリケーションは、イベントが発生したときにイベントに応答する必要があります。たとえば、割り込み。イベントは、プロセス間通信に使用されます。

イベントでのデリゲートの使用

イベントはクラスで宣言および発生され、同じクラスまたは他のクラス内のデリゲートを使用してイベントハンドラーに関連付けられます。イベントを含むクラスは、イベントを公開するために使用されます。これは、publisherクラス。このイベントを受け入れる他のクラスは、subscriber クラス。イベントはpublisher-subscriber モデル。

A publisherイベントとデリゲートの定義を含むオブジェクトです。イベントデリゲートの関連付けもこのオブジェクトで定義されます。パブリッシャークラスオブジェクトがイベントを呼び出し、他のオブジェクトに通知されます。

A subscriberイベントを受け入れ、イベントハンドラーを提供するオブジェクトです。パブリッシャークラスのデリゲートは、サブスクライバークラスのメソッド(イベントハンドラー)を呼び出します。

イベントの宣言

クラス内でイベントを宣言するには、まず、次のように偶数のデリゲート型を宣言する必要があります。

public delegate string BoilerLogHandler(string str);

次に、を使用してイベントを宣言します event キーワード−

event BoilerLogHandler BoilerEventLog;

上記のコードは、BoilerLogHandlerという名前のデリゲートと、発生したときにデリゲートを呼び出すBoilerEventLogという名前のイベントを定義しています。

using System;

namespace SampleApp {
   public delegate string MyDel(string str);
	
   class EventProgram {
      event MyDel MyEvent;
		
      public EventProgram() {
         this.MyEvent += new MyDel(this.WelcomeUser);
      }
      public string WelcomeUser(string username) {
         return "Welcome " + username;
      }
      static void Main(string[] args) {
         EventProgram obj1 = new EventProgram();
         string result = obj1.MyEvent("Tutorials Point");
         Console.WriteLine(result);
      }
   }
}

上記のコードをコンパイルして実行すると、次の結果が得られます。

Welcome Tutorials Point