为什么它显示Index在数组的边界之外
本文关键字:边界 数组 显示 Index 为什么 | 更新日期: 2023-09-27 18:14:10
我在第33行和第46行得到索引越界。为什么会这样?我在试着反转这个数组。我知道错误代码是什么意思,但我不知道为什么我得到它。第33行-字符串反转= ReverseArray(锻造);第46行- return reverseCraft[5];
//make an array to be reversed
string[] craftArray = new string[5] { "Iron", "Stone", "Copper", "Steel", "Clay" };
//create a variable to hold return value
string[] crafting = new string[5];
//function call the ReverseCraft method
string reversed = ReverseArray(crafting);
//Report the calculation to the user
Console.Write("The array reversed is" + reversed);
}
public static string ReverseArray(string[] craft)
{
//create a variable and reverse
string[] reverseCraft = new string[5] { craft[4], craft[3], craft[2], craft[1], craft[0] };
//return value
return reverseCraft[5];
}
}
}
您的反向方法签名错误。它应该返回string[]
,像这样:
public static string[] ReverseArray(string[] craft) {
//create a variable and reverse
string[] reverseCraft = new string[5] { craft[4], craft[3], craft[2], craft[1], craft[0] };
//return value
return reverseCraft;
}
有了这些代码,您需要做的就是正确地打印结果:
string[] reversed = ReverseArray(crafting);
//Report the calculation to the user
Console.Write("The array reversed is " + string.Join(", ", reversed));
在
这一行抛出错误返回reverseCraft [5];
因为没有reverseCraft[5].
reverseCraft的第一个元素是reverseCraft[0],最后一个元素是reverseCraft[4]。