640
Chương 16: Các giao diện và mẫu thông dụng
// Chép đè thuộc tính Message của lớp cơ sở (để kèm các
// thành viên dữ liệu tùy biến vào).
public override string Message {
get {
string message = base.Message;
if (stringInfo != null) {
message += Environment.NewLine +
stringInfo + " = " + booleanInfo;
}
return message;
}
}
}
Trong các ứng dụng lớn, bạn sẽ thường xuyên hiện thực một vài lớp ngoại lệ tùy biến. Bạn
cần lưu tâm đến cách tổ chức các ngoại lệ tùy biến và mã lệnh sẽ sử dụng chúng như thế nào.
Nói chung, tránh tạo ra các lớp ngoại lệ mới trừ khi mã lệnh cần nỗ lực bắt ngoại lệ đó; sử
dụng các thành viên dữ liệu để thu thông tin, chứ không phải các lớp ngoại lệ. Ngoài ra, tránh
phân cấp lớp theo chiều sâu mà nên phân cấp cạn, theo chiều rộng.
8.
8.
Hi n th c đ i s s ki n tùy bi n
ệ
ự ố ố ự ệ
ế
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:
•
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.
•
Đặ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
.
•
Đá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ó.