Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
179 KB
Nội dung
Bài 12 Generic Iterator Ôn tập lại cũ • Khái niệm Collection • System.Collection namespace • ArrayList • Hashtable • SortedList • Dictionary • Stack • Queue • LinkedList Generic and Iterator Nội dung trình bày • Generic gì? • System.Collections.Generic namespace • Icomparable Icomparer Interface • Generic class • Generic method • Generic interface • Iterator gì? • Tạo iterator Subject name / Session# / of Totalpage Generic and Iterator Vấn đề generalized class đời kỹ thuật Generic? • using System.Collections; • ArrayList myList = new ArrayList(); • Employee myEmp = new Employee(); • myList.Add(myEmp); • myEmp = (Employee)myList[0]; • ArrayList myList = new ArrayList(); • int myInt = 99; • myList.Add(myInt); // box the int to an object • myInt = (int)myList.[0]; // unbox the object to an int Generic and Iterator Vấn đề generalized class đời kỹ thuật Generic? • Các lớp System.Collection namespace generalized classes • Khi sử dụng, phải ép kiểu(cast), chương trình phải thực thao tác box unbox thực thi, chiếm nhiều nhớ thời gian CPU • Kỹ thuật generic đời phiên C# 2.0 để khắc phục nhược điểm generalized class( nằm System.Collection namespace) • Các lớp generic, phương thức generic sử dụng tham số kiểu(type parameter), tham số kiểu kiểu đối tượng mà lớp, phương thức thao tác Generic and Iterator System.Collection.Generic namespace Generic and Iterator System.Collections.Generic • Cú pháp khai báo đối tượng lớp generic ClassName objName = new ClassName(); Ví dụ: //ArrayList a = new ArrayList(); List a = new List(); List empList = new List(); Stack st = new Stack(); Ví dụ DEMO Generic and Iterator Icomparable Icomparer Interface • Nếu tập hợp số nguyên hay chuỗi việc đơn giản gọi phương thức sort để xếp(mặc định theo thứ tự tăng dần, muôn xêp giản dần dùng phương thức reverse() để đảo ngược thứ tự lại sau gọi phương thức sort) • Khi muốn xếp tập hợp đối tượng(ví dụ tập đối tượng lớp student, employee…) phải cài đặt hai interface • Khi muốn xếp theo trường cài đặt interface Icomparable • Ngược lại muốn xếp nhiều trường, phải cài đặt Icomparer interface Ví dụ DEMO Generic and Iterator Tạo Generic class class [where ] • Access_modifier: phạm vi lớp generic • ClassName: tên lớp generic • : kiểu tham số đại diện • type parameterr constraint name: kiểu lớp interface áp dụng cho lớp generic, mệnh đề không bắt buộc Các lớp generic kế thừa Ví dụ DEMO Generic and Iterator Generic method • Generic method phương thức thao tác với nhiều kiểu liệu khác • Có thể khai báo bên generic class non-generic class(lớp bình thường) Khi khai báo bên generic class, thân phương thức tham chiếu đến kiểu tham số lớp phương thức • Có thể khai báo với từ khóa: virtual, override,abstract • Cú pháp: • Ví dụ DEMO Generic and Iterator Generic interface • Cú pháp • interface [...]... lấy ra c c thành phần trong lớp Nhưng chương trình sẽ rất dài dòng • Iterator là đ c tính mới trong C# 2.0 nó dùng để xây dựng nên kỹ thuật duyệt c c phần tử trong một tập hợp • Iterator đư c tạo bằng c ch c i đặt phương th c GetEnumerator(), phương th c này trả về kiểu Ienumerator Interface Ví dụ DEMO Generic and Iterator Kết luận • Kỹ thuật generic • System.Collections.generic • Generic class...Generic and Iterator Generic interface • C pháp • interface ... kiểu(cast), chương trình phải th c thao t c box unbox th c thi, chiếm nhiều nhớ thời gian CPU • Kỹ thuật generic đời phiên C# 2.0 để kh c ph c như c điểm generalized class( nằm System.Collection... trường c i đặt interface Icomparable • Ngư c lại muốn xếp nhiều trường, phải c i đặt Icomparer interface Ví dụ DEMO Generic and Iterator Tạo Generic class class