Siêu thị PDFTải ngay đi em, trời tối mất

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
MIỄN PHÍ
Số trang
9
Kích thước
184.4 KB
Định dạng
PDF
Lượt xem
1029

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]

Tải ngay đi em, còn do dự, trời tối mất!