Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Hiện thực đối số sự kiện tùy biến Khi dựng lên một sự kiện, bạn cần truyền một trạng thái đặc-trưng-sự-kiện cho các phương thức thụ lý sự kiện. Tạo một lớp đối số sự kiện tùy biến dẫn xuất từ lớp System.EventArg. | o Hiện thực đối số sự kiện tùy biến Khi dựng lên một sự kiện bạn cần truyền một trạng thái đặc-trưng-sự-kiện cho các phương thức thụ lý sự kiện. Tạo một lớp đối số sự kiện tùy biến dẫn xuất từ lớp System.EventArg. Khi dựng lên sự kiện hãy tạo một thể hiện của lớp đối số sự kiện và truyền nó cho các phương thức thụ lý sự kiện. Khi khai báo các kiểu sự kiện thông thường bạn sẽ cần truyền trạng thái đặc-trưng-sự-kiện cho các phương thức thụ lý sự kiện. Để tạo một lớp đối số sự kiện tùy biến tuân theo mẫu Event do .NET Framework định nghĩa bạn cần 1. Dẫn xuất lớp đối số sự kiện tùy biến từ lớp EventArgs. Lớp EventArgs không chứa dữ liệu và được sử dụng cùng với các sự kiện không cần truyền trạng thái. 2. Đặt một tên có ý nghĩa cho lớp đối số sự kiện tùy biến kết thúc bằng từ EventArgs chẳng hạn DiskFullEventArgs hay MailReceivedEventArgs. 3. Đánh dấu lớp đối số sự kiện là sealed nếu bạn không muốn các lớp đối số sự kiện khác có thể thừa kế nó. 4. Hiện thực thêm các thuộc tính và các thành viên dữ liệu để hỗ trợ trạng thái sự kiện mà bạn cần truyền cho các phương thức thụ lý sự kiện. Tốt nhất là làm cho trạng thái sự kiện trở nên bất biến immutable như vậy bạn nên sử dụng các thành viên dữ liệu private readonly và sử dụng các thuộc tính public để cho phép truy xuất chỉ-đọc đến các thành viên dữ liệu này. 5. Hiện thực một phương thức khởi dựng public hỗ trợ cấu hình ban đầu của trạng thái sự kiện. 6. Làm cho lớp đối số sự kiện của bạn trở nên khả-tuần-tự-hóa serializable để bộ thực thi có thể marshal các thể hiện của nó qua các biên miền ứng dụng và biên máy. Áp dụng đặc tính System.SerializableAttribute thường là đã đủ cho các lớp đối số sự kiện. Tuy nhiên nếu lớp đối số sự kiện có các yêu cầu tuần tự hóa đặc biệt bạn phải hiện thực giao diện System.Runtime.Serialization.ISerializable xem mục 16.1 để biết cách làm cho một lớp trở nên khả-tuần-tự-hóa . Đoạn mã dưới đây trình bày một lớp đối số sự kiện tùy biến có tên là MailReceivedEventArgs. Giả sử có một mail-server .