MyDelegate1 mulDel = new MyDelegate1(Print); 22.[r]
(1)BÀI 7
ỦY NHIỆM, SỰ KIỆN VÀ XỬ LÝ
(2)2 v1.0011106203
TÌNH HUỐNG DẪN NHẬP
Ngơn ngữ lập trình C# thực việc uỷ nhiệm, xử lý kiện xử lý ngoại lệ nào?
Chương trình xây dựng nhiệm vụ lớn chương trình quản lý học viên
trường đại học Quốc Gia cần đến nhiều kỹ thuật tinh vi ngơn ngữ lập trình Các ký thuật giúp cho người viết phần mềm dễ dàng thực cơng việc mà cịn tổ chức xử lý lỗi cho chương trình để chương trình chạy
(3)MỤC TIÊU
Trình bày khái niệm, cách thức sử dụng ủy nhiệm C#
Trình bày khái niệm ngoại lệ, bắt lỗi, xử lý lỗi C#
Trình bày khái niệm kiện, thực chương trình qua kiện C#
(4)4 v1.0011106203
NỘI DUNG
1.1 Uỷ nhiệm 1
1.2 Các phương thức dấu tên 2
1.3 Sự kiện 3
1.4 Xử lý ngoại lệ
(5)Khai báo
• Uỷ nhiệm(delegate): kiểu liệu tham chiếu dùng để đóng gói phương
thức với tham số kiểu trả xác định
• Trong delegate khơng cần quan tâm đến lớp đối tượng mà tham chiếu tới mà cần quan tâm đến tham số phương thức kiểu trả phải phù hợp với đối tượng ủy quyền khai báo
• Khai báo:
<Bổ từ truy cập> delegate <Kiểu trả về> <Tên phương thức(tham số)>;
(6)6 v1.0011106203
• Lớp đóng gói phương thức (method signature) • Dùng xử lý kiện C#
• Đặc tính
An tồn kiểu (typesafe) Bảo mật
Hướng đối tượng
• Tất phương thức đóng gói có kiểu trả dạng tham số truyền vào thể delegate
(7)• Sử dụng:
<Tên delegate> <đối tượng> new <Tên delegate(Tên phương thức uỷ nhiệm)>;
• Ủy quyền dùng để:
Xác định loại phương thức dùng để xử lý kiện Thực callback chương trình ứng dụng
Xác định phương thức tĩnh instance phương thức
trước chương trình thực
• Các phương thức gọi lại thơng qua Delegate là:
Một instance method
Một class method
(8)8 v1.0011106203
• public delegate void MyDelegate1(int x, int y) • public delegate string MyDelegate2(float f)
• public void Method1(int x, int y) • {
• …
• } • …
• MyDelegate1 del1 = new MyDelegate1(Method1);
• public string Method2(float f) • {
• …
• } • …
Ví dụ:
(9)• Gọi delegate
int x = 5, y = 10;
del1(x, y); del1(10, 20);
int y = 2;
del1(100, y);
Gọi del1
Gọi del2
(10)10 v1.0011106203
• Khi delegate gói nhiều phương thức gọi multicast delegate
• Một multicast delegate gọi gọi liên tiếp phương thức theo thứ tự • Một delegate có kiểu trả void trình biên dịch coi
multicast delegate
• Một multiccast delegate cho phép nhận tốn tử “+”, “-”, “+= “, “-=“
• Một muticast delegate lớp dẫn xuất từ lớp System.MulticastDelegate
1.2 MULTICAST DELEGATE
Ví dụ multicast delegate
15 void Print(int x,int y) { 16 }
17 Console.WriteLine(“x = {0}, y = {1}”, x, y); 18 void Sum(int x, int y) {
19 Console.WriteLine(“Tong = {0}”, x+y); 20 }
21 MyDelegate1 mulDel = new MyDelegate1(Print); 22 mulDel += new MyDelegate1(Sum);
23 mulDel(5, 10);