ConsoleKeyInfo CKI = Console.ReadKey(true);
Run Code Online (Sandbox Code Playgroud)
CKI.KeyChar是字符输入的unicode等价如果我在控制台提示符中按'1',CKI.KeyChar将为49,而不是值'1'.
如何获得值'1'?
我知道这是一种获得输入的狡猾方式,但它是我老师想要的方式,所以我不能这样做.
编辑:我需要用户提供的值,因为我将不得不检查它是否小于9
用这个:
char.IsDigit(CKI.KeyChar);
Run Code Online (Sandbox Code Playgroud)
如果您需要将其转换为数字,请使用以下命令:
int myNumber = int.Parse(CKI.KeyChar.ToString())
Run Code Online (Sandbox Code Playgroud)
要检查它是否小于9,那么你这样做:
if (myNumber < 9)
{
// Its less than 9. Do Something
} else {
// Its not less than 9. Do something else
}
Run Code Online (Sandbox Code Playgroud)
使用该.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);
}
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)