C#:Console.Read()没有得到“正确”的输入

时间:2010-03-13 11:44:25

标签: c#

我有以下代码: 实际问题是“非引用”代码。 我想获得玩家数量(最大值= 4),但是当我通过Console.Read()询问并且我从1到4输入任何Int时,我得到值48 + Console.Read()。 他们只能使用Console.ReadLine()获取“真实”输入,但这不会给我Integer,不会返回字符串,实际上不知道如何转换{{1 (数字)到C#中的整数,因为我是新手,因为我只找到String而不是ToNumber。

ToString()

3 个答案:

答案 0 :(得分:4)

您可以使用

int convertedNumber = int.parse(stringToConvert)

int convertedNumber;

int.TryParse(stringToConvert, out covertedNumber)

将字符串转换为整数。

答案 1 :(得分:2)

您应该使用TryParse代替,以便在用户未输入数字时可以捕获。如果int.Parse尝试转换非数字字符串,则会引发异常。

 int convertedNumber = 0;

 if (!int.TryParse(stringToConvert, out convertedNumber))
 {
     // this code will execute if the user did not put
     //     in an actual number.  For example, if the user entered "a".
 }

TryParse方法返回一个布尔值,该值将告诉您转换是否成功。如果成功,转换后的值将通过out参数传递。

答案 2 :(得分:0)

要将字符串转换为整数,请使用int.Parse(yourString)

你得到“48 + Console.ReadKey”的原因是Console.ReadKey返回被按下的键的代码 - 在这种情况下,是数字字符的ANSI值被压了。