当前位置: 首页> 黑客网> 正文

C#数组边界检查

下面是一个简单的示例来说明这一点:

C#数组边界检查

```csharp

using System;

class Program

{

static void Main()

{

int[] numbers = new int[] { 1, 2, 3, 4, 5 };

Console.WriteLine(numbers[0]); // 输出: 1

Console.WriteLine(numbers[4]); // 输出: 5

// 下面这行代码将引发IndexOutOfRangeException,因为索引5超出了数组边界

// Console.WriteLine(numbers[5]);

// 要避免这种错误,可以在访问数组之前检查索引是否有效

int index = 5;

if (index < numbers.Length)

{

Console.WriteLine(numbers[index]); // 输出: 无输出,因为numbers[5]不存在

}

}

}

```

在上面的代码中,我们定义了一个包含5个元素的整数数组 `numbers`。当我们尝试访问数组的第6个元素(索引为5)时,程序将抛出 `IndexOutOfRangeException` 异常,因为该索引超出了数组的有效边界(从0到4)。

为了避免这种情况,你应该始终确保访问数组的索引是有效的。你可以通过比较索引和数组长度(`.Length`属性)来实现这一点。如果索引小于或等于 `.Length`,那么它是有效的;如果索引大于 `.Length`,那么它将指向数组之外的内存位置,从而导致错误。