C # – Sự kiện


Sự kiện là 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à nhà xuất bản lớp. Một số lớp khác chấp nhận sự kiện này được gọi là người đăng kí lớp. Sự kiện sử dụng nhà xuất bản-người đăng ký người mẫu.

Một nhà xuất bản là 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.

Một người đăng kí là 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. Ủy viên 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 người đăng ký.

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 một 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 Sự kiện từ khóa –

event BoilerLogHandler BoilerEventLog;

Đoạn mã trước đó xác định một đại biểu có tên BoilerLogHandler và một sự kiện có tên BoilerEventLogsẽ 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