Tìm hiểu C# và ứng dụng của C# p 16

Chương 12 Delegate và Event ( Tiếp theo) Delegate tĩnh Điểm bất lợi của ví dụ 12-1 là nó buộc lớp gọi, trong trường hợp này là lớp Test, phải khởi tạo các delegate nó cần để sắp thứ tự các đối tượng trong một cặp. Sẽ tốt hơn nếu như có thể lấy các delegate từ lớp Dog và Student. Chúng ta có thể làm điều này bằng cách tạo cho trong mỗi lớp một delegate tĩnh. Đối với lớp Student ta thêm như sau: public static readonly OrderStudents = new (); Dòng lệnh này tạo một delegate tĩnh, chỉ đọc. | Delegate và Event Gvhd Nguyễn Tấn Trần Minh Khang Delegate tĩnh Điểm bất lợi của ví dụ 12-1 là nó buộc lớp gọi trong trường hợp này là lớp Test phải khởi tạo các delegate nó cần để sắp thứ tự các đối tượng trong một cặp. Sẽ tốt hơn nếu như có thể lấy các delegate từ lớp Dog và Student. Chúng ta có thể làm điều này bằng cách tạo cho trong mỗi lớp một delegate tĩnh. Đối với lớp Student ta thêm như sau public static readonly OrderStudents new Dòng lệnh này tạo một delegate tĩnh chỉ đọc có tên là OrderStudent Ta có thể tạo tương tự cho lớp Dog public static readonly OrderDogs new Dog. WhichDogComesFirst 94 Delegate và Event Gvhd Nguyễn Tấn Trần Minh Khang Như vậy mỗi lớp có một delegate riêng khi cần ta lấy các delegate này và truyền như tham số. theStudentDelegate After Sort studentPair t t 0 After ReverseSort studentPair t 0 After Sort dogPair t t 0 After ReverseSort Kết quả hoàn toàn như ví dụ trên. Delegate như Property Một vấn đề với delagate tĩnh là nó phải được khởi tạo trước cho dù có được dùng hay không. Ta có thể cải tiến bằng cách thay đổi biến thành viên tĩnh thành property Đối với lớp Student ta bỏ khai báo sau public static readonly Orderstudents new và thay thế bằng public static Orderstudents get return new WhichStudentComesFirst Tương tự thay thế cho lớp Dog public static OrderDogs get return new WhichDogComesFirst Khi property Orderstudent được truy cập delegate sẽ được tạo return new WhichStudentComesFirst Khác .

Không thể tạo bản xem trước, hãy bấm tải xuống
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.