Bài giảng Lập trình trên Windows: Chương 2 - Trần Minh Thái (Phần 3)
Số trang: 29
Loại file: pptx
Dung lượng: 129.05 KB
Lượt xem: 14
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Lập trình trên Windows - Chương 2: Ngôn ngữ lập trình C# (phần 3)" cung cấp cho người học các kiến thức: Khái niệm delegate, tạo đối tượng delegate, gọi đối tượng delegate, ứng dụng delegate,.... Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình trên Windows: Chương 2 - Trần Minh Thái (Phần 3) Lập trình WindowsChương 2. Ngôn ngữ lập trình C# Phần 3 1Nội dung • Delegate • Event 22DelegateKhái niệm• Kiểu delegate là cho phép khai báo các biến (đối tượng) tham chiếu đến các phương thức (có chữ ký do delegate quy định) System.Delegate System.MulticastDelegate User-delegate User-delegate 4Các bước sử dụng delegateBước 1: Khai báo kiểu delegateBước 2: Tạo đối tượng delegateBước 3: Gắn phương thức vào đối tượng delegateBước 4: Gọi đối tượng delegate 5Khai báo kiểu delegate[attributes][modifiers]delegate (parameterlist);§ Ví dụ void Method1(); int Method2(); double Method3(double x, double y); void Method4(EventArgs e);delegate void DelegateType1();delegate int DelegateType2();delegate double DelegateType3(double x, double y);delegate void EventHandler(EventArgs e); 6Tạo đối tượng delegate DelegateName objD; objD = new DelegateName(obj.methodName); objD = new DelegateName(methodName); objD = obj.methodName; objD = obj.methodName; Đốitượngdelegatecóthểđượckhaibáonhưlà field, tham số của phương thức, biến cục bộ của phương thức 7Tạo đối tượng delegate• Bất kỳ phương thức nào phù hợp với chữ ký của delegate đềucóthểgánchođốitượngdelegate• Các phương thức này được lưu trong invocation list củadelegate• Mỗi khi một delegate được gán bằng một phương thứcthìbiếnđóhoạtđộngnhưmộtphươngthức 8Gọi đối tượng delegate objD(parameterList);§ Mộtlờigọi đếndelegatesẽgọitấtcảcácphương thứctronginvocationlisttheođúngthứtự§ Nếuinvocationlistrỗngthìsẽnémramộtngoạilệ NullReferenceException§ Nếukiểutrảvềcủacácphươngthứckhácvoidthì kếtquảtrảvềcủadelegatelàkếtquảcủaphương thứccuốicùng 9Gọi đối tượng delegatenamespace Delegate.Example1{ delegate int DelegateType(int x, int y); class Program { static void Main(string []args) { Program obj = new Program(); DelegateType a = new DelegateType(obj.TinhTong); int kq = a(3, 4); Console.WriteLine(Ket qua = {0}, kq); } int TinhTong(int a, int b) { return a + b; } }} 10Phép toán trên delegate objD1 = objD2 + objD3 objD1 += objD4 objD1 = objD2 - objD3 objD1 -= objD4 11Ứng dụng• Có 2 cách dùng quan trọng của delegate • Cho phép hàm được truyền như là tham số của hàm khác (tạo hàm callback) • Tạo các sự kiện• Bài tập • Viết phương thức sắp xếp bằng interface • Viết phương thức sắp xếp bằng delegate 12EventKhái niệmEvent là một field thuộc kiểu delegate mà chỉ được gọi từ bêntrong của lớp mà nó được khai báo class ClassName { public event DelegateName objE; … } 14So sánh delegate và event namespace Delegate.Example2 { delegate void DelegateType(); delegate class ClassA { public DelegateType objD; public void Method() { if (objD != null) objD(); } } 15 }So sánh delegate và event class ClassB { public void Xuat1() { Console.WriteLine(Xuat 1); } public void Xuat2() { Console.WriteLine(Xuat 2); } public void Ham() { ClassA p = new ClassA(); p.objD = Xuat1; p.objD += Xuat2; p.objD(); p.Method(); } } 16So sánh delegate và event namespace Delegate.Event.Example { delegate void DelegateType(); Sự kiện class ClassA { public ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình trên Windows: Chương 2 - Trần Minh Thái (Phần 3) Lập trình WindowsChương 2. Ngôn ngữ lập trình C# Phần 3 1Nội dung • Delegate • Event 22DelegateKhái niệm• Kiểu delegate là cho phép khai báo các biến (đối tượng) tham chiếu đến các phương thức (có chữ ký do delegate quy định) System.Delegate System.MulticastDelegate User-delegate User-delegate 4Các bước sử dụng delegateBước 1: Khai báo kiểu delegateBước 2: Tạo đối tượng delegateBước 3: Gắn phương thức vào đối tượng delegateBước 4: Gọi đối tượng delegate 5Khai báo kiểu delegate[attributes][modifiers]delegate (parameterlist);§ Ví dụ void Method1(); int Method2(); double Method3(double x, double y); void Method4(EventArgs e);delegate void DelegateType1();delegate int DelegateType2();delegate double DelegateType3(double x, double y);delegate void EventHandler(EventArgs e); 6Tạo đối tượng delegate DelegateName objD; objD = new DelegateName(obj.methodName); objD = new DelegateName(methodName); objD = obj.methodName; objD = obj.methodName; Đốitượngdelegatecóthểđượckhaibáonhưlà field, tham số của phương thức, biến cục bộ của phương thức 7Tạo đối tượng delegate• Bất kỳ phương thức nào phù hợp với chữ ký của delegate đềucóthểgánchođốitượngdelegate• Các phương thức này được lưu trong invocation list củadelegate• Mỗi khi một delegate được gán bằng một phương thứcthìbiếnđóhoạtđộngnhưmộtphươngthức 8Gọi đối tượng delegate objD(parameterList);§ Mộtlờigọi đếndelegatesẽgọitấtcảcácphương thứctronginvocationlisttheođúngthứtự§ Nếuinvocationlistrỗngthìsẽnémramộtngoạilệ NullReferenceException§ Nếukiểutrảvềcủacácphươngthứckhácvoidthì kếtquảtrảvềcủadelegatelàkếtquảcủaphương thứccuốicùng 9Gọi đối tượng delegatenamespace Delegate.Example1{ delegate int DelegateType(int x, int y); class Program { static void Main(string []args) { Program obj = new Program(); DelegateType a = new DelegateType(obj.TinhTong); int kq = a(3, 4); Console.WriteLine(Ket qua = {0}, kq); } int TinhTong(int a, int b) { return a + b; } }} 10Phép toán trên delegate objD1 = objD2 + objD3 objD1 += objD4 objD1 = objD2 - objD3 objD1 -= objD4 11Ứng dụng• Có 2 cách dùng quan trọng của delegate • Cho phép hàm được truyền như là tham số của hàm khác (tạo hàm callback) • Tạo các sự kiện• Bài tập • Viết phương thức sắp xếp bằng interface • Viết phương thức sắp xếp bằng delegate 12EventKhái niệmEvent là một field thuộc kiểu delegate mà chỉ được gọi từ bêntrong của lớp mà nó được khai báo class ClassName { public event DelegateName objE; … } 14So sánh delegate và event namespace Delegate.Example2 { delegate void DelegateType(); delegate class ClassA { public DelegateType objD; public void Method() { if (objD != null) objD(); } } 15 }So sánh delegate và event class ClassB { public void Xuat1() { Console.WriteLine(Xuat 1); } public void Xuat2() { Console.WriteLine(Xuat 2); } public void Ham() { ClassA p = new ClassA(); p.objD = Xuat1; p.objD += Xuat2; p.objD(); p.Method(); } } 16So sánh delegate và event namespace Delegate.Event.Example { delegate void DelegateType(); Sự kiện class ClassA { public ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Lập trình trên Windows Lập trình trên Windows Lập trình ứng dụng Lập trình ứng dụng Windows Ngôn ngữ lập trình C# Ngôn ngữ lập trình Tạo đối tượng delegateGợi ý tài liệu liên quan:
-
Tóm tắt Đồ án tốt nghiệp Công nghệ thông tin: Lập trình game với ứng dụng Unity
16 trang 459 0 0 -
Tóm tắt Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng game 2D trên Unity
21 trang 336 1 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 258 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 247 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 247 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 229 0 0 -
Bài giảng Tin học lớp 11 bài 1: Giới thiệu ngôn ngữ lập trình C#
15 trang 222 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 210 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 200 1 0 -
15 trang 196 0 0