ConsoleKeyInfo CKI = Console.ReadKey(true);
CKI.KeyChar是等效于字符输入的unicode
因此,如果在控制台提示符下按“1”,则CKI.KeyChar将为49,而不是值“1”。
如何获得值“1”?
我知道这是一种获取输入的曲折方式,但是它是我的老师想要的方式,因此我无法做到这一点。
编辑:我需要用户提供的值,因为我将不得不检查其值是否小于9
最佳答案
使用 .KeyChar
属性并与 Char.IsNumber
比较。
要获得等效的数值,可以使用 Int32.Parse
或 Int32.TryParse
:
Int32 number;
if (Int32.TryParse(cki.KeyChar.ToString(), out number))
{
Console.WriteLine("Number: {0}, Less than 9?: {1}", number, number < 9);
}
测试应用:
using System;
namespace Test
{
public static void Main()
{
Console.WriteLine("Press CTRL+C to exit, otherwise press any key.");
ConsoleKeyInfo cki;
do
{
cki = Console.ReadKey(true);
if (!Char.IsNumber(cki.KeyChar))
{
Console.WriteLine("Non-numeric input");
}
else
{
Int32 number;
if (Int32.TryParse(cki.KeyChar.ToString(), out number))
{
Console.WriteLine("Number received: {0}; <9? {1}", number, number < 9);
}
else
{
Console.WriteLine("Unable to parse input");
}
}
}
while (cki.KeyChar != 27);
}
}
关于c# - C#检查ConsoleKeyInfo.KeyChar是否为数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12644473/