C # - Sự kiện
Eventslà các hành động của người dùng như nhấn phím, nhấp chuột, di chuyển chuột, v.v., hoặc một số trường hợp xảy ra như thông báo do hệ thống tạo. Các ứng dụng cần phản hồi các sự kiện khi chúng xảy ra. Ví dụ, ngắt. Sự kiện được sử dụng để giao tiếp giữa các quá trình.
Sử dụng đại biểu với sự kiện
Các sự kiện được khai báo và nâng lên trong một lớp và được liên kết với các trình xử lý sự kiện bằng cách sử dụng các đại biểu trong cùng một lớp hoặc một số lớp khác. Lớp chứa sự kiện được sử dụng để xuất bản sự kiện. Đây được gọi làpublisherlớp học. Một số lớp khác chấp nhận sự kiện này được gọi làsubscriber lớp học. Sự kiện sử dụngpublisher-subscriber mô hình.
A publisherlà một đối tượng chứa định nghĩa của sự kiện và đại biểu. Hiệp hội đại biểu sự kiện cũng được định nghĩa trong đối tượng này. Một đối tượng lớp nhà xuất bản gọi sự kiện và nó được thông báo cho các đối tượng khác.
A subscriberlà một đối tượng chấp nhận sự kiện và cung cấp một trình xử lý sự kiện. Đại biểu trong lớp nhà xuất bản gọi phương thức (trình xử lý sự kiện) của lớp thuê bao.
Khai báo sự kiện
Để khai báo một sự kiện bên trong một lớp, trước hết, bạn phải khai báo kiểu đại biểu cho chẵn như:
public delegate string BoilerLogHandler(string str);
sau đó, khai báo sự kiện bằng cách sử dụng event từ khóa -
event BoilerLogHandler BoilerEventLog;
Mã trước đó xác định một đại biểu có tên là BoilerLogHandler và một sự kiện có tên BoilerEventLog , sự kiện này sẽ gọi đại biểu khi nó được nâng lên.
Thí dụ
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);
}
}
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Welcome Tutorials Point