我对c#非常陌生,仍然不了解有关数组的一些基本知识。当我初始化我的程序时,我要求用户以整数形式输入,然后使用它来声明数组的大小。执行情况:
int sortSpaceSize = Console.Read ();
bool[] sortSpace = new bool[sortSpaceSize];但是,当我测试程序时,数组大小是just...wierd。当我键入45作为输入时,它输出的数组大小为52。它有964684,输出57。我不知道是怎么回事。如果在声明数组时不允许使用变量作为大小,那么为什么不抛出一个错误?我应该用列表代替吗?提前谢谢你。
发布于 2017-01-16 18:51:09
那是因为你只读了一个字符。试着阅读一个完整的数字:
string input = Console.ReadLine();
int sortSpaceSize;
if (!Int32.TryParse(input, out sortSpaceSize))
{
throw new Exception("not a number");
}
bool[] sortSpace = new bool[sortSpaceSize];正如Chris所指出的,您为什么会得到这些奇怪的数字:您正在转换第一个数字的ascii code,并将其用作数组大小。
https://stackoverflow.com/questions/41683150
复制相似问题