Danh mục

Lập trình Windows - Lập Trình C #- Lập Trình C Shap - Chương 4

Số trang: 56      Loại file: ppt      Dung lượng: 1.27 MB      Lượt xem: 11      Lượt tải: 0    
tailieu_vip

Xem trước 6 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu lập trình windows - lập trình c #- lập trình c shap - chương 4, công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Lập trình Windows - Lập Trình C #- Lập Trình C Shap - Chương 4 Chapter 4Delegate & EventNội dung Delegate Khái niệm delegate  Thực thi delegate  Multicast delegate  Giải pháp cho hàm Sort tổng quát  Event Khái niệm event  Event & delegate  Cơ chế publishing & subscribing  Minh họa cơ chế event  2Delegate là gì Delegate là 1 kiêu dữ liêu loai tham chiêu cho phep lưu trữ ̉ ̣ ̣ ́ ́  ́ ́ ́ ̀ cac tham chiêu đên ham. 3DelegateDelegate Delegates tương tự như tham chiêu đôi tượng, nhưng ́ ́ được dung để tham chiêu method thay vì tham chiêu đôi ̀ ́ ́ ́ tượng. Khai niêm delegate tương tự như con trỏ ham trong C++. ́ ̣ ̀ 4 ́Khai bao delegate Delegate được khai bao giông như khai bao ham nhưng ́ ́ ́ ̀  không có phân thân ham. Khai bao delegate xac đinh loai ̀ ̀ ́ ́ ̣ ̣ dữ liêu trả về (return type) và danh sach cac đôi số ̣ ́ ́ ́ (parameter list) access delegate function_declaration ̣ Vi du: delegate double ProcessDelegate(double param1, double param2); 5Khởi tao biên delegate ̣ ́ Sau khi khai bao delegate, có thể khai bao biên có kiêu là ́ ́ ́ ̉  delegate vưa khai bao. ̀ ́ ̣ Vi du: ProcessDelegate process;  Khơi đâu biên như 1 tham chiêu đên bât kỳ ham nao có ̉ ̀ ́ ́ ́ ́ ̀ ̀ cung kiêu trả về (return type) và danh sach đôi số ̀ ̉ ́ ́ (parameter list) như cua delegate. ̉ Ví du: Nêu ham Multiply có cung signature với delegate có ̣ ́ ̀ ̀ tên là process static double Multiply(double param1, double param2) { return param1 * param2; }  Khởi tao biên process ̣ ́ process = new ProcessDelegate(Multiply); 6Thực thi delegate Khi đã khởi đâu biên, có thể goi ham thông ̀ ́ ̣ ̀  qua biên delegate như thể nó là 1 ham. ́ ̀ Ví du: ̣ Console.WriteLine(Result: {0}, process(13.5, 67)); 7The type or signature of the method the delegatecan point to int Add(int a, int b) { return a+b; Signature of these two } methods: int Subtract(int c, int d) int aMethod(int p, int q) { return c-d; } define the type of a delegate using the delegate keyword delegate int MyDelegate(int p, int q);The type or signature of the method the delegatecan point to define the type of a delegate using the delegate keyword delegate int MyDelegate(int p, int q); The reference of this delegate type can be used to point to any method which takes two integers as parameters and returns an integer value. ́Biên delegate trong C# In C# 1.0 and later, delegates can be declared as shown here: public delegate void Del(T item); public void Notify(int i) { } Del d1 = new Del(Notify); In C# 2.0 and later, it is also possible to use an anonymous method to declare and initialize a delegate by using this simplified syntax: Del d2 = Notify; 10Passing delegates to methods Tham chiêu delegate cua 1 method có thể được chuyên ́ ̉ ̉ ̀ ́ (pass) vao 1 method khac.static void PerformArithOperation(double a, double b, processDelegate arithOperation) { double r = arithOperation(a, b); Console.WriteLine( The result of arithmetic operation on 3 and 4 is: {0}, r); } Method nay được goi như sau: ̀ ̣ PerformArithOperation(3, 4, ...

Tài liệu được xem nhiều: