当我输入此代码时:
int[] test = new int[5];
test[5] = 7;
Visual Studio,Resharper也没有提醒我这个错误。这似乎很容易被发现?还有一个常见的错误......
也许在某些情况下检测到这种情况太复杂了,但在某些情况下看起来很简单。那么,有没有一个特定的原因,为什么这不会生成编译器或Resharper警告?
答案 0 :(得分:2)
您忘记了Array.Resize
功能。
如果开发人员在运行时调用该函数然后使用更高的索引,该怎么办。
class Program
{
static void Main()
{
// Initialize array for example.
char[] array = new char[4];
array[0] = 'p';
array[1] = 'e';
array[2] = 'r';
array[3] = 'l';
// Display the array.
for (int i = 0; i < array.Length; i++)
{
Console.Write(array[i]);
}
Console.WriteLine();
// Resize the array from 4 to 6 elements.
Array.Resize(ref array, 6);
// Display the array that has been resized.
for (int i = 0; i < array.Length; i++)
{
Console.Write(array[i]);
}
Console.WriteLine();
}
}