Console.Read在C#中失败

xar*_*rzu 0 c#

这是一个非常简单的代码.但这是我第一次用C#编写控制台应用程序.简单地说,使用这两行

    int iRoll;
    Console.WriteLine("Roll Dice and input number for your move");
    iRoll = Console.Read();
Run Code Online (Sandbox Code Playgroud)

如果我从cmd窗口输入数字5(无论是来自数字键盘还是键盘),iRoll的值为53.为什么会这样?

Lee*_*Lee 9

Console.Read返回int包含从输入流中读取的字符的内容.该字符5编码为53.

如果你想要一个包含该行的字符串,你应该使用ReadLine:

string line = Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用int.TryParse以下命令将字符串解析为int :

int iRoll;
if (int.TryParse(line, out iRoll)) {
    // use iRoll
} else {
    // handle invalid input
}
Run Code Online (Sandbox Code Playgroud)