Giáo trình phân tích cấu tạo bo mạch mảng một chiều các giá trị bên trong dấu ngoặc p3 pot - Pdf 19

Ngôn Ngữ Lập Trình C#
Value: Who
Tương tự như vậy, ví dụ cũng tạo ra mảng thứ hai, myOtherArray, chứa những từ sau:
“Chung”, “toi”, “la”, “nhung”,”nguoi”,
”lap”,”trinh”, “máy”, “tính”
Sau khi gọi phương thức Array.Sort() thì các thành phần của mảng được sắp xếp lại theo thứ
tự alphabe:
Value: Chung
Value: la
Value: lap
Value: may
Value: nguoi
Value: nhung
Value: tinh
Value: toi
Value: trinh
Bộ chỉ mục
Đôi khi chúng ta chúng ta mong muốn truy cập một tập hợp bên trong một lớp như thể
bản thân lớp là một mảng. Ví dụ, giả sử chúng ta tạo một điều khiển kiểu ListBox tên là
myListBox chứa một danh sách các chuỗi lưu trữ trong một mảng một chiều, một biến thành
viên private myStrings. Một List Box chứa các thuộc tính thành viên và những phương thức
và thêm vào đó mảng chứa các chuỗi của nó. Tuy nhiên, có thể thuận tiện hơn nếu có thể truy
cập mảng ListBox với chỉ mục như thể ListBox là một mảng thật sự. Ví dụ, ta có thể truy cập
đối tượng ListBox được tạo ra như sau:
string theFirstString = myListBox[0];
string theLastString = myListBox[myListBox.Length - 1];
Bộ chỉ mục là một cơ chế cho phép các thành phần client truy cập một tập hợp chứa bên trong
một lớp bằng cách sử dụng cú pháp giống như truy cập mảng ([]). Chỉ mục là một loại thuộc
tính đặc biệt và bao gồm các phương thức get() và set() để xác nhận những hành vi của
chúng.
Chúng ta có thể khai báo thuộc tính chỉ mục bên trong của lớp bằng cách sử dụng cú pháp

public ListBoxTest( params string[] initialStrings)
{
// cấp phát không gian cho chuỗi
strings = new String[256];
// copy chuỗi truyền từ tham số
foreach ( string s in initialStrings)
{
strings[ctr++] = s;
}
}
// thêm một chuỗi
public void Add(string theString)
{
if (ctr >= strings.Length)
{
// xử lý khi chỉ mục sai
}
else
strings[ctr++] = theString;
Mảng, Chỉ Mục, và Tập Hợp
234
.
.
Ngôn Ngữ Lập Trình C#
}
// thực hiện bộ truy cập
public string this[int index]
{
get
{

// tạo một đối tượng ListBox mới và khởi tạo
ListBoxTest lbt = new ListBoxTest(“Hello”,”World”);
Mảng, Chỉ Mục, và Tập Hợp
235
.
.
Ngôn Ngữ Lập Trình C#
// thêm một số chuỗi vào lbt
lbt.Add(“Who”);
lbt.Add(“is”);
lbt.Add(“Ngoc”);
lbt.Add(“Mun”);
// dùng bộ chỉ mục
string strTest = “Universe”;
lbt[1] = strTest;
// truy cập và xuất tất cả các chuỗi
for(int i = 0; i < lbt.GetNumEntries(); i++)
{
Console.WriteLine(“lbt[{0}]: {1}”, i, lbt[i]);
}
}
}
}

 Kết quả:
lbt[0]: Hello
lbt[1]: Universe
lbt[2]: Who
lbt[3]: is
lbt[4]: Ngoc

return myStrings[index];
}
Đối với phương thức set() thì đầu tiên nó sẽ kiểm trả xem chỉ mục của đối tượng cần lấy có
vượt quá số lượng của các đối tượng trong mảng hay không. Nếu giá trị chỉ mục hợp lệ tức là
tồn tại một đối tượng có chỉ mục tương đương, phương thức sẽ bắt đầu thiết lập lại giá trị của
đối tượng này. Từ khóa value được sử dụng để tham chiếu đến tham số đưa vào trong phép
gán của thuộc tính:
set
{
if ( index >= ctr)
{
// chỉ mục không tồn tại
}
}
Do vậy, nếu chúng ta viết:
myStrings[10] = “Hello C#”;
trình biên dịch sẽ gọi phương thức set() của bộ chỉ mục trên đối tượng và truyền vào một
chuỗi “Hello C#” như là một tham số ngầm định tên là value.
Bộ chỉ mục và phép gán
Trong ví dụ 9.9, chúng ta không thể gán đến một chỉ mục nếu nó không có giá trị. Do đó,
nếu chúng ta viết:
lbt[10] = “ah!”;
Chúng ta có thể viết điều kiện ràng buộc bên trong phương thức set(), lưu ý rằng chỉ mục mà
chúng ta truyền vào là 10 lớn hơn bộ đếm số đối tượng hiện thời là 6.
Dĩ nhiên, chúng ta có thể sử dụng phương thức set() cho phép gán, đơn giản là phải xử lý
những chỉ mục mà ta nhận được. Để làm được điều này, chúng ta phải thay đổi phương thức
set() để kiểm tra giá trị Length của bộ đệm hơn là giá trị hiện thời của bộ đếm số đối tượng.
Mảng, Chỉ Mục, và Tập Hợp
237
.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status