在声明数组大小时使用int变量

时间:2017-01-16 18:49:47

标签: c# arrays

我对c#很陌生,但仍然不了解有关数组的一些基础知识。当我初始化我的程序时,我要求用户输入整数形式的输入,然后我用它来声明数组的大小。 实施:

int sortSpaceSize = Console.Read ();
bool[] sortSpace = new bool[sortSpaceSize];

然而,当我测试程序时,数组大小只是......很奇怪。当我输入45作为输入时,它输出的数组大小为52.对于964684,它输出57.我不知道出了什么问题。如果在声明数组时不允许将变量用作大小,那么为什么这不会引发错误?我应该使用列表吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

那是因为你只读一个字符。尝试阅读完整的数字:

string input = Console.ReadLine();
int sortSpaceSize;
if (!Int32.TryParse(input, out sortSpaceSize))
{
    throw new Exception("not a number");
}
bool[] sortSpace = new bool[sortSpaceSize];

当克里斯清楚地说明为什么你得到那些奇怪的数字:你正在转换第一个数字的ascii code并将其用作数组大小。