Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.08 MB, 10 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
2
v1.0011106203
Chương trình được xây dựng một nhiệm vụ lớn như chương trình quản lý học viên của
trường đại học Quốc Gia thì cần đến rất nhiều các kỹ thuật tinh vi của ngơn ngữ lập
trình. Các ký thuật này khơng những giúp cho người viết phần mềm dễ dàng thực hiện
các cơng việc mà cịn tổ chức và xử lý các lỗi cho chương trình để chương trình chạy
Trình bày khái niệm, cách thức sử dụng ủy nhiệm trong C#.
Trình bày khái niệm về ngoại lệ, và bắt lỗi, xử lý lỗi trong C#.
Trình bày khái niệm sự kiện, và thực hiện chương trình qua các sự kiện
trong C#.
4
v1.0011106203
1.1. Uỷ nhiệm
1.2. Các phương thức dấu tên
1.3. Sự kiện
1.4. Xử lý ngoại lệ
<b>Khai báo</b>
• Uỷ nhiệm(delegate): là kiểu dữ liệu tham chiếu được dùng để đóng gói một phương
thức với tham số và kiểu trả về xác định.
• Trong delegate thì khơng cần quan tâm đến những lớp đối tượng mà nó tham chiếu
tới mà chỉ cần quan tâm đến các tham số của phương thức và kiểu trả về phải phù
hợp với đối tượng ủy quyền khai báo.
• Khai báo:
<b><Bổ</b> <b>từ</b> <b>truy cập></b> <b>delegate</b> <b><Kiểu trả</b> <b>về> <Tên</b> <b>phương</b> <b>thức(tham số)>;</b>
6
v1.0011106203
• Lớp đóng gói các phương thức (method signature)
• Đặc tính
An tồn kiểu (typesafe).
Bảo mật.
Hướng đối tượng.
• Tất cả các phương thức đóng gói có cùng kiểu trả về và dạng tham số thì có thể
được truyền vào thể hiện của delegate.
• Sử dụng:
<b><Tên delegate> <đối</b> <b>tượng></b> <b>new</b> <b><Tên delegate(Tên</b> <b>phương</b> <b>thức uỷ</b> <b>nhiệm)>;</b>
• Ủy quyền được dùng để:
Xác định những loại phương thức có thể được dùng để xử lý các sự kiện
Thực hiện callback trong chương trình ứng dụng.
Xác định các phương thức tĩnh và các instance của phương thức không biết
trước cho đến khi chương trình thực hiện.
• Các phương thức được gọi lại thơng qua Delegate có thể là:
Một instance method.
Một class method.
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)
• {
• …
• }
• …
<b>Ví dụ:</b>
• Gọi delegate
<b>int x = 5, y = 10;</b>
<b>del1(x, y);</b> <b><sub>del1(10, 20);</sub></b>
<b>int y = 2;</b>
<b>del1(100, y);</b>
<b>Gọi del1</b>
<b>Gọi del2</b>
10
v1.0011106203
• Khi một delegate gói nhiều hơn một phương thức thì nó được gọi là
multicast delegate.
• Một multicast delegate được gọi thì nó sẽ gọi liên tiếp các phương thức theo thứ tự.
• Một delegate có kiểu trả về là void thì trình biên dịch sẽ coi như đây là một
multicast delegate.
• Một multiccast delegate cho phép nhận tốn tử “+”, “-”, “+= “, “-=“.
• Một muticast delegate là một lớp được dẫn xuất từ lớp System.MulticastDelegate.
<b>Ví dụ</b> <b>multicast delegate</b>
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);