Danh mục

TÌM HIỂU NGÔN NGỮ C# VÀ VIẾT MỘT ỨNG DỤNG MINH HỌA phần 4

Số trang: 22      Loại file: pdf      Dung lượng: 411.19 KB      Lượt xem: 9      Lượt tải: 0    
tailieu_vip

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

Thông tin tài liệu:

Array, Indexer, and CollectionGvhd: Nguyễn Tấn Trần Minh Khang// dùng indexer thứ hai Console.WriteLine("VB: " + s["VB"].NoiDung);9.4 Các giao diện túi chứa.NET Framework cung cấp một số các giao diện chuẩn để tương tác với các lớp túi chứa hay để cài đặt các lớp túi
Nội dung trích xuất từ tài liệu:
TÌM HIỂU NGÔN NGỮ C# VÀ VIẾT MỘT ỨNG DỤNG MINH HỌA phần 4Array, Indexer, and Collection Gvhd: Nguyễn Tấn Trần Minh Khang // dùng indexer thứ hai Console.WriteLine(VB: + s[VB].NoiDung);9.4 Các giao diện túi chứa.NET Framework cung cấp một số các giao diện chuẩn để tương tác với các lớp túichứa hay để cài đặt các lớp túi chứa mới tương thích (có cùng giao diện) với các lớpchuẩn của .NET Framework. Các giao diện được liệt kê ở Bảng 9-1 Các giao diệntúi chứaBảng 9-1 Các giao diện túi chứaGiao diện Ý nghĩaIEnumerable Khi một lớp cài đặt giao diện này, đối tượng thuộc lớp có được dùng trong câu lệnh foreachICollection Được cài đặt bởi tất cả các lớp túi chứa có thành viên CopyTo(), Count, IsReadOnly(), IsSyncronize(), SyncRoot()IComparer So sánh hai đối tượng trong túi chứaIList Dùng bởi các lớp túi chứa truy xuất phần tử thông qua chỉ mục (số)IDictionary Dùng bởi các lớp túi chứa truy xuất phần tử thông qua quan hệ khóa/giá trị như Hashtabe, StoredList.IDictionaryEnumerator Cho phép duyệt đối với các túi chứa cài đặt IDictionary9.5 Array ListsMột vấn đề cổ điển trong khi sử dụng lớp Array là kích thước: kích thước một mảngcố định. Nếu không thể biết trước cần có bao nhiêu phần tử, ta có thể khai báo quánhiều (lãng phí) hay quá ích (chương trình có lỗi). ArrayList cài đãt cấu trúc dữ liệudanh sach liệt kê cho phép cấp phát động các phần tử. Lớp này cài đặt giao diệnIList, ICollection, IEnumerable và có rất nhiều hàm dùng để thao tác lên danh sách.IComparableArrayList có phương thức Sort( ) giúp chúng ta sắp xếp các phần tử. Điều bắt buộclà phần tử phải thuộc lớp có cài đặt giao diện IComparable (có duy nhất mộtphương thức CompareTo()).9.6 Hàng đợiHàng đợi (queue) là một túi chứa hoạt động theo cơ chế FIFO (First in first out -vào trước ra trước). Cũng giống như ta đi xếp hàng mua vé xem phim, nếu ta vàotrước mua vé thì ta sẽ được mua vé trước.Hàng đợi là một tập hợp tốt cho việc ta sử dụng để quản lí nguồn tài nguyên có giớihạn. Ví dụ như ta gửi đi những thông điệp đến tài nguyên, mà tài nguyên thì chỉ cóthể giải quyết cho một thông điệp. Do đó chúng ta phải tạo một hàng đợi những 65Array, Indexer, and Collection Gvhd: Nguyễn Tấn Trần Minh Khangthông điệp để cho tài nguyên có thể dựa vào đó mà xử lí “từ từ”. Lớp Queue cài đặttúi chứa này.9.7 StacksStack là túi chứa hoạt động theo cơ chế LIFO (Last in first out - vào sau ra trước).Hai phương thức cơ bản trong việc thêm hoặc xóa Stack là:Push( ) và Pop( ). Ngoàira Stack còn có phương thức Peek( ), tương tự như Pop() nhưng không xóa bỏ phầntử này.Các lớp ArrayList, Queue và Stack đều có những phương thức giống nhau nhưCopyTo( ) và ToArray( ) dùng để sao chép những phần tử vào trong một mảng.Trong trường hợp Stack thì phương thức CopyTo( ) sẽ sao chép những phần tử vàomột mảng một chiều đã tồn tại, và nội dung chúng sẽ ghi đè lên vị trí bắt đầu màchúng ta đã chỉ định. Phương thức ToArray( ) trả về một mảng mới với nội dung lànhữngphần tử trong stack.9.8 DictionaryDictionary là tên gọi chung cho các túi chứa lưu trữ các phần tử theo quan hệkhóa/giá trị. Điều này có nghĩa là tương ứng với một khóa, ta tìm được một và chỉduy nhất một giá trị tương ứng.Nói cách khác là một giá trị có một khóa duynhất không trùng với bất kỳ khóa của giá trị khác.Một lớp muốn là một Dictionary thì cài đặt giao diện IDictionary. Lớp Dictionarymuốn được sử dụng trong câu lệnh foreach thì cài đặt giao diệnIDictionaryEnumerator.Dictionary thường được dùng nhất là bảng băm (Hashtable).Bảng bămHashtable là cấu trúc dữ liệu có mục tiêu tối ưu hóa việc tìm kiếm. .et Frameworkcung cấp lớp Hashtable cài đặt cấu trúc dữ liệu này.Một đối tượng được dùng như khóa phải cài đặt hay thừa kế phương thứcObject.GetHashCode() và Object.Equals() (các lớp thư viện .NET Framework hiểnnhiên thỏa điều kiện này). Một điều kiện nữa là đối tượng này phải immutable (dữliệu các trường thành viên không thay đổi) trong lúc đang là khóa. 66Chuỗi Gvhd: Nguyễn Tấn Trần Minh KhangChương 10 ChuỗiChuỗi (string) trong C# là một kiểu dựng sẵn như các kiểu int, long…, có đầy đủtính chất mềm dẻo, mạnh mẽ và dễ dùng. Một đối tượng chuỗi trong C# là một haynhiều ký tự Unicode không thể thay đổi thứ tự. Nói cách khác là các phương thứcáp dụng lên chuỗi không làm thay đổi bản thân chuỗi, chúng chỉ tạo một bản sao cósửa đổi, chuỗi gốc vẫn giữ nguyên.Để khai báo một đối tượng chuỗi, sử dụng từ khóa string; đối tượng này thật sựtrùng vớ ...

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