Bài giảng ngôn ngữ C#: Bài 7 - Chử Đức Hoàng - Trường Đại học Công nghiệp Thực phẩm Tp. Hồ Chí Minh

10 19 0
Bài giảng ngôn ngữ C#: Bài 7 - Chử Đức Hoàng - Trường Đại học Công nghiệp Thực phẩm Tp. Hồ Chí Minh

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

Thông tin tài liệu

MyDelegate1 mulDel = new MyDelegate1(Print); 22.[r]

(1)

BÀI 7

Y NHIM, S KIN VÀ X

(2)

2 v1.0011106203

TÌNH HUNG DN NHP

 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)

MC 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

NI 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);

Ngày đăng: 01/04/2021, 13:33