Làm việc với Event
Giới thiệu Event
Event là các hành động của người dùng như nhấn phím, nhấp chuột, chuyển động của chuột, hoặc một số sự kiện xảy ra chẳng hạn như thông báo do hệ thống tạo ra. Các ứng dụng cần phản hồi lại các sự kiện khi chúng xảy ra. Ví dụ, ngắt các event được sử dụng cho các giao tiếp bên trong tiến trình hay là khi xử lý xử kiện khi nhấn vào các phần tử UI trên ứng dụng.
Làm việc Event thông qua Delegate
Các Event được khai báo và được tạo trong một lớp và được liên kết với Event Handler (xử lý sự kiện) bởi sử dụng các Delegate bên trong cùng lớp đó hoặc một số lớp khác. Lớp chứa Event được sử dụng để công bố Event. Đây được gọi là lớp publisher. Một số lớp khác chấp nhận Event này được gọi là lớp subscriber. Event sử dụng mô hình publisher-subscriber:
- Publisher là một đối tượng có chứa định nghĩa của Event và Delegate. Liên kết event-delegate cũng được định nghĩa trong đối tượng này. Đối tượng lớp publisher gọi evnet này và nó được thông báo cho các đối tượng khác.
- Subscriber là một đối tượng chấp nhận event và cung cấp một trình xử lý event. Delegate trong lớp publisher gọi phương thức (xử lý sự kiện) của lớp subscriber.

Khai báo Event
Để khai báo một event trong lớp, đầu tiên phải tạo một kiểu delegate cho event đó:
public delegate string MyDelegate(string str);
Sau đó sẽ khai báo một event:
event MyDelegate MyEvent;
Ví dụ về sử dụng Event
Ví dụ EventDemo sau đây sẽ minh hoạ cụ thể cách sử dụng event: