1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng c và môi trường donet bài 12

13 151 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 179 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Các lớp trong System.Collection namespace là các generalized classes • Khi sử dụng, chúng ta luôn phải ép kiểucast, chương trình luôn phải thực hiện thao tác box và unbox khi thực thi

Trang 1

Generic và Iterator

Trang 2

• Khái niệm Collection

• System.Collection namespace

• ArrayList

• Hashtable

• SortedList

• Dictionary

• Stack

• Queue

• LinkedList

Trang 3

Subject name / Session# / 3 of Totalpage

 Nội dung trình bày

• Generic là gì?

• System.Collections.Generic namespace

• Icomparable và Icomparer Interface

• Generic class

• Generic method

• Generic interface

• Iterator là gì?

• Tạo iterator

Trang 4

 Vấn đề của generalized class và sự ra đời của kỹ thuật Generic?

• myList.Add(myInt); // box the int to an object

• myInt = (int)myList.[0]; // unbox the object to an int

Trang 5

 Vấn đề của generalized class và sự ra đời của kỹ thuật

Generic?

• Các lớp trong System.Collection namespace là các generalized classes

• Khi sử dụng, chúng ta luôn phải ép kiểu(cast), chương trình luôn

phải thực hiện thao tác box và unbox khi thực thi, do đó chiếm

nhiều bộ nhớ và thời gian của CPU

• Kỹ thuật generic đã ra đời trong phiên bản C# 2.0 để khắc phục những nhược điểm trên của các generalized class( nằm trong

System.Collection namespace)

• Các lớp generic, các phương thức generic sử dụng tham số

kiểu(type parameter), tham số kiểu sẽ chỉ ra kiểu đối tượng mà lớp, phương thức sẽ thao tác

Trang 6

 System.Collection.Generic namespace

Trang 7

 System.Collections.Generic

• Cú pháp khai báo đối tượng lớp generic

ClassName<ObjecType> objName = new ClassName<objectType>();

Ví dụ:

//ArrayList a = new ArrayList();

List<int> a = new List<int>();

List<Employee> empList = new List<Employee>(); Stack<string> st = new Stack<string>();

Ví dụ DEMO

Trang 8

 Icomparable và Icomparer Interface

• Nếu tập hợp là số nguyên hay chuỗi khi đó chúng ta chỉ việc đơn giản gọi phương thức sort ra để sắp xếp(mặc định sắp theo thứ tự tăng dần, muôn sắp xêp giản dần chúng ta có thể dùng phương thức reverse() để đảo ngược thứ tự lại sau khi đã gọi phương thức sort)

• Khi muốn sắp xếp tập hợp các đối tượng(ví dụ tập đối tượng lớp

student, employee…) chúng ta phải cài đặt một trong hai interface trên

• Khi muốn sắp xếp theo một trường nào đó chúng ta cài đặt

interface Icomparable

• Ngược lại khi muốn sắp xếp trên nhiều trường, khi đó chúng ta phải

cài đặt Icomparer interface

Ví dụ DEMO

Trang 9

 Tạo Generic class

<access_modifier> class <ClassName><type parameter list>

[where <type parameter constraint clause>]

• Access_modifier: chỉ phạm vi của lớp generic

• ClassName: tên lớp generic

• <type parameter list>: kiểu tham số đại diện

• type parameterr constraint name: chỉ kiểu của lớp hoặc interface sẽ

áp dụng cho lớp generic, mệnh đề này không bắt buộc

 Các lớp generic có thể kế thừa nhau

Trang 10

 Generic method

• Generic method là những phương thức có thể thao tác với nhiều kiểu dữ liệu khác nhau

• Có thể khai báo bên trong một generic class hoặc một non-generic class(lớp bình thường) Khi khai báo bên trong một generic class, thân của phương thức có thể tham chiếu đến cả kiểu tham số của lớp và phương thức

• Có thể khai báo với các từ khóa: virtual, override,abstract

• Cú pháp:

<acces_modifier> <return_type> <MethodName> <type

parameter list>

Trang 11

 Generic interface

• Cú pháp

• <access_modifier> interface <InterfaceName><type parameter list><[where <type parameter list>]

• Ví dụ:

Trang 12

 Iterator là gì?

• Khi chúng ta xây dựng một lớp mà lớp đó nó họat động như một

tập hợp Làm thế nào để duyệt qua được các thành phần trong một tập hợp đó?

• Chúng ta có thể truy xuất thông qua các chỉ số của mảng để 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

Trang 13

 Kết luận

• Kỹ thuật generic

• System.Collections.generic

• Generic class

• Generic method

• Generic interface

• Iterator

Ngày đăng: 04/12/2015, 14:33

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w