Đi qua các gianh giới mảng C#

Đi qua các gianh giới mảng C#

Thử truy cập một chỉ mục vượt quá cái gì kích cỡ của nó hỗ trợ sẽ dẫn đến các thứ tồi thậm chí nguy hiểm. C# đảm
bảo rằng bất cứ thứ nào đi vượt quá phần bắt đầu hay kết thucs của một mảng sẽ bị dừng lại trước khi nó có thể xảy
ra, tạo một lỗi chỉ mục ngoài phạm vi cái sẽ crash chương trình của bạn nếu không xử lí (các học phần sau). Một
vấn đề như vậy sẽ xảy ra với code dưới đây:

int[] scores = new int[5];
scores[10] = 1000;

Scores có 5 vật, và chúng được đánh số 0 qua 4. Những cái đó là các số an toàn, và thử truy cập vị trí #10 sẽ thất
bại. Một thử để truy cập chỉ mục -1 sẽ thất bại vì cùng lí do.
Bạn muốn đảm bảo bạn chỉ truy cập các vị trí hợp pháp bên trong mảng. May mắn là, mỗi mảng nhớ nó dài bao nhiêu. Nó
có thể thông báo cho bạn nếu bạn yêu cầu. Bằng cách tham chiếu đến biến Length của mảng (về mặt kĩ thuật là một đặc
tính, nhưng nhiều hơn sau này), bạn có thể thấy có bao nhiêu vật nó chứa:

Console.WriteLine(scores.Length);

Cái này đặc biệt là hữu dụng khi chúng ta không biết một mảng có thể lớn như thế nào. Code dưới đây yêu cầu người
dùng cho một length, tạo một mảng của kích cỡ đó, sau đó sử dụng một for loop để điền nó với các giá trị:

int length = Convert.ToInt32(Console.ReadLine()); // Combined into one line!
int[] array = new int[length];
for(int index = 0; index < array.Length; index++)
array[index] = 1;

Cái này sinh ra một mảng đầy các 1s, với nhiều phần tử như người dùng yêu cầu cho.
Các for loops được sử dụng phổ biến với các mảng. Scheme ở ttreen là điển hình và đáng chú ý khi bạn cần làm nó
bản thân bạn. Hầu hết các lập trình viên C# sẽ bắt đầu chỉ mục tại 0, lặp dài như biến loop là nhỏ hơn độ dài mảng,
tăng 1 mỗi lần đi qua loop.

Chia sẻ