1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình nâng cao: Chương 6 - Lý Anh Tuấn

33 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 1,76 MB

Nội dung

Bài giảng Lập trình nâng cao: Chương 6 Sự kiện và Delegate, cung cấp cho người học những kiến thức như: Khởi tạo deletage; Ứng dụng của delegate; Khai báo delegate; Tạo thể hiện cho delegate; Gán phương thức khác nhau; Multicast delegate;...Mời các bạn cùng tham khảo!

TRƯỜNG ĐẠI HỌC THỦY LỢI Khoa CNTT – Bộ môn CNPM LẬP TRÌNH NÂNG CAO Delegate xử lý kiện Sự kiện Delegate Delegate gì? • Delegate kiểu liệu đặc biệt, biến kiểu tham chiếu, có khả lưu trữ tham chiếu tới phương thức • Delegate chế hỗ trợ chung cho việc gọi phương thức gián tiếp chạy => delegate hiểu Ủy quyền Sự kiện Delegate Khai báo delegate • Khai báo delegate C# định phương thức mà tham chiếu delegate • Một delegate tham chiếu tới phương thức, mà có dấu hiệu delegate Sự kiện Delegate Ví dụ • C# tạo kiểu delegate có dạng sau • Kiểu dùng để tham chiếu tới phương thức có tham số object EventArgs • Sự kiện click button thể kiểu delegate (delegate có tên EventHandler) Sự kiện Delegate Ví dụ • Do vậy, tạo kiện click cho nút (Vd nút btSo1) ta thấy kiện tham chiếu tới hàm có tham số object EvenArgs Sự kiện Delegate Khởi tạo deletage • Khi kiểu delegate khai báo, đối tượng delegate phải tạo với từ khóa new liên kết với phương thức cụ thể • Khi tạo delegate, tham số truyền tới biểu thức new viết tương tự lời gọi phương thức, khơng có tham số tới phương thức Sự kiện Delegate Ứng dụng delegate • Trong lập trình C# delegate sử dụng vào thực thi kiện (event) phương thức gọi sau (call-back methods) • Để thực thi delegate ứng dụng cần: – Khai báo delegates (khai báo kiểu, khai báo biến) – Tạo thể delegates (cho biến delegate tham chiếu tới phương thức) – Sử dụng delegates Sự kiện Delegate Khai báo delegate Khai báo kiểu delegate cú pháp: delegate () Ví dụ: delegate void Thongbao(string str); // tương tự khai báo phương thức // sử dụng từ khoá delegate Khai báo biến delegate Thongbao thongbao1; Sự kiện Delegate Tạo thể cho delegate Cú pháp: new DelegateType (obj.Method) • Biến delegate chứa phương thức đối tượng nhận, không chứa tham số new Thongbao(myObj.SayHello); • Đối tượng this (và bỏ qua) new Thongbao(SayHello); 10 Sự kiện Delegate Multicast delegate o Một multicast delegate dẫn xuất từ lớp System.MulticastDelegate o Nó chứa lời gọi danh sách phương thức o Kiểu trả tất delegates phải giống o Khi multicast delegate gọi, xử lý tất phương thức theo thứ tự mà gán Sự kiện Delegate 19 Multicast delegate • Thêm phương thức vào multicast delegate sử dụng tốn tử + • Loại bỏ phương thức khỏi multicast delegate sử dụng toán tử - 20 Sự kiện Delegate Multicast delegate • Biến multicast delegate chứa nhiều giá trị thời điểm Thongbao thongbao1; thongbao1 = new Thongbao(SayHello); thongbao1 += new Thongbao(SayGoodBye); thongbao1("John"); // "Hello from John" "Good bye from John" 21 Sự kiện Delegate Multicast delegate • Biến multicast delegate chứa nhiều giá trị thời điểm Thongbao thongbao1; thongbao1 = new Thongbao(SayHello); thongbao1("John"); // "Hello from John" thongbao1 += new Thongbao(SayGoodBye); thongbao1 -= new Thongbao(SayHello); thongbao1("John"); // "Good bye from John“ Sự kiện Delegate 22 • Chú ý Multicast delegate – Nếu multicast delegate hàm, trả giá trị hàm tham chiếu cuối – Vì biến multicast delegate biến tham chiếu đến nhiều hàm Khi gọi biến multicast delegate thực thực thi hàm mà tham chiếu đến => kết kết hàm cuối 23 Sự kiện Delegate Multicast delegate • Chú ý – Nếu multicast delegate có tham số ref tham số truyền qua tất phương thức 24 Sự kiện Delegate Multicast delegate • Chú ý – Nếu multicast delegate có tham số out, tham số lời gọi cuối trả 25 Sự kiện Delegate Bài tập • Tạo hàm cộng trừ nhân chia: – Tham số truyền vào số nguyên – Trả kết tương ứng với số tham số truyền vào • Tạo delegate • Thực tham chiếu đến hàm • Gọi xem kết Sự kiện Delegate 26 Bài tập • Tạo lớp Nguoi có thơng tin: – Tên, tuổi, chiều cao, cân nặng, … – Phương thức so sánh tuổi, chiều cao, cân nặng người • Thực nhập thơng tin người • Sử dụng delegate thực gọi so sánh đưa kết phương thức so sánh tuổi, chiều cao, cân nặng người vừa nhập 27 Sự kiện Delegate Bài tập • Tạo lớp với thành phần sau: – Lớp người: tên, tuổi, giới tính, quê quán, nhập, xuất – Lớp động vật: tên, cân nặng, giá thành, nguồn gốc, nhập, xuất – Lớp xe: tên, màu sắc, nguồn gốc, giá thành, nhập, xuất • Trong chương trình chính, tạo menu cho phép người dùng lựa chọn làm việc với đối tượng thuộc lớp • Sử dụng delegate để thực lời goi nhập xuất thông tin cho đối tượng mà người dùng vừa chọn (thực lời gọi nhập, lời gọi xuất phải gọi hàm nhập xuất đối tượng mà người dùng chọn) 28 Sự kiện Delegate Sự kiện (event) Event – Bắt kiện Winform • Sự kiện tác động lên đối tượng form • Với tác động người dùng mong muốn thực nhiệm vụ cụ thể • C#.Net thiết kế sẵn cho kiện kiểu delegate tương ứng • Lập trình viên cần xử lý nhiệm vụ bên hàm mà delegate kiện gọi đến 30 Sự kiện Delegate Bắt kiện - Event • Các delegate dùng để bắt kiện thường có dạng sau: delegate void SomeEvent (object sender, SomeEventArgs e); • Trong – Kiểu trả về: void – Tham số thứ nhất: Đối tượng gửi kiện (kiểu object) – Tham số thứ hai: kiện (một đối tượng lớp EventArgs tương ứng) 31 Sự kiện Delegate Bắt kiện - Event • Ví dụ: Bắt kiện click cho nút btThanhtien khai báo: Và định nghĩa hàm: 32 Sự kiện Delegate Bài tập • Tạo lớp: nhà, xe người Trong lớp mơ tả với thành phần sau: – Lớp nhà: có thơng tin diện tích sàn, có phương thức so sánh nhà viết nhà có diện tích lớn – Lớp xe: có thơng tin giá xe, có phương thức so sánh xe viết xe có giá cao – Lớp người có thơng tin chiều cao, có phương thức so sánh người viết người cao • Tạo form có menu cho phép chọn đối tượng làm việc: – Nếu chọn nhà hiển thị giao diện nhập thơng tin nhà – Nếu chọn xe hiển thị giao diện nhập thông tin xe – Nếu chọn người hiển thị giao diện nhập thơng tin người • Trên giao diện có nút so sánh Thực so sánh đối tượng làm việc giao diện cách dùng delegate 33 Sự kiện Delegate ... thiết kế sẵn cho kiện kiểu delegate tương ứng • Lập trình viên cần xử lý nhiệm vụ bên hàm mà delegate kiện gọi đến 30 Sự kiện Delegate Bắt kiện - Event • Các delegate dùng để bắt kiện thường có... delegate o Dấu hiệu phương thức phải trùng với dấu hiệu DelegateType - số lượng tham số - kiểu liệu tham số (bao gồm kiểu trả về) - kiểu truyền tham số (ref, out, value) 12 Sự kiện Delegate Tạo thể... gọi 16 Sự kiện Delegate Các kiểu delegate • Delegates có hai kiểu phụ thuộc vào yêu cầu ứng dụng mà kiểu delegate lựa chọn Single-cast delegate Multicast delegate 17 Sự kiện Delegate Single-cast

Ngày đăng: 11/07/2022, 12:04