Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu Các giao diện và mẫu phần cuối doc
Nội dung xem thử
Mô tả chi tiết
Ä 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 truyền các thể hiện của lớp
MailReceivedEventArgs cho các phương thức thụ lý sự kiện nhận một thông điệp e-mail.
Lớp này chứa các thông tin về người gửi và chủ đề của thông điệp e-mail.
using System;
[Serializable]