Bài tập thực hành C# 9

Nội dung thực hành

  • Làm việc Delegate
  • Event
  • Biểu thức Lambda

Bài tập

Bài 1: Sử dụng delegate

Viết một chương trình tạo ra delegate để chuyển đổi feet thành inch và một lớp để kiểm tra delegate này.

Bài 2: Sử dụng events

Viết một chương trình để tạo ra lớp PrintHelper in số nguyên trong các định dạng khác nhau như số, tiền, thập phân, nhiệt độ và hệ thập lục phân. Nó bao gồm một beforePrintEvent để thông báo cho subcriber của event BeforePrint trước khi nó in số.

PrintHelper là một lớp publisher đã xuất bản sự kiện beforePrint. Lưu ý rằng trong mỗi phương phức in, nó trước tiên kiểm tra để xem nếu beforePrintEvent không phải là null và sau đó nó gọi beforePrintEvent (). beforePrintEvent là một đối tượng của delegate kiểu BeforPrint, vì vậy nó sẽ là null nếu không có lớp nào được đăng ký cho event và đó là lý do tại sao nó cần phải kiểm tra null trước khi gọi một delegate.

Cuối cùng, tạo một lớp đăng ký sự kiện có tên Number.

Gợi ý:

Tất cả các subcriber phải cung cấp một chức năng điều khiển (handler function), được gọi khi một publicher gây ra một event. Trong ví dụ trên, lớp Number tạo ra một thể hiện của PrintHelper và đăng ký với prePrintEvent với toán tử "+=" và cho biết tên của hàm sẽ xử lý sự kiện (nó sẽ được gọi khi xuất bản tạo ra một event). printHelper_beforePrintEventis xử lý sự kiện có chữ ký giống như delegate BeforePrint trong lớp PrintHelper.

Bài 3: Sử dụng biểu thức Lambda

Viết một chương trình để tạo một collection, chứa dữ liệu từ một lớp gọi là Dog. Trong chương trình, từ lớp Dog (có thuộc tính Name and Age), chúng ta muốn có một danh sách có chứa tất cả các tên của con chó. Với từ khoá var, chương trình sẽ cho trình biên dịch xác định loại biến phụ thuộc vào kết quả mà chúng ta gán ở phía bên phải của dấu bằng.

Gợi ý:

Sử dụng các biểu thức Lambda như sau:

var names = dogs.Select(x => x.Name);

Complete and Continue