C# - イベント
イベント キーの押下、クリック、マウスの移動などのユーザー アクション、またはシステム生成の通知などの発生です。アプリケーションは、イベントが発生したときにそれに応答する必要があります。たとえば、割り込み。イベントはプロセス間通信に使用されます。
イベントでのデリゲートの使用
イベントはクラスで宣言および発生され、同じクラスまたは他のクラス内のデリゲートを使用してイベント ハンドラーに関連付けられます。イベントを含むクラスは、イベントの公開に使用されます。これは発行者と呼ばれます クラス。このイベントを受け入れる他のクラスは subscriber と呼ばれます クラス。イベントは publisher-subscriber を使用します モデル。
出版社 イベントとデリゲートの定義を含むオブジェクトです。イベント デリゲートの関連付けも、このオブジェクトで定義されます。パブリッシャー クラス オブジェクトがイベントを呼び出し、他のオブジェクトに通知されます。
購読者 イベントを受け取り、イベント ハンドラを提供するオブジェクトです。パブリッシャー クラスのデリゲートは、サブスクライバー クラスのメソッド (イベント ハンドラー) を呼び出します。
イベントの宣言
クラス内でイベントを宣言するには、まず、イベントのデリゲート型を次のように宣言する必要があります:
public delegate string BoilerLogHandler(string str);
次に、イベントを使用してイベントを宣言します キーワード −
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
C言語