为什么Console.Read()不返回输入的数字?

时间:2013-10-16 20:18:38

标签: c# visual-studio

这是我在Visual Studio 2010 Ultimate和2008 Team System中用C#编写的程序:

class Program
{
    static void Main(string[] args)
    {
        int a=0;
        Console.WriteLine("Enter a number: ");
        a = Console.Read();
        Console.WriteLine("you Entered : {0}",a);
        Console.ReadKey();
     }
}

这就是结果:

输入一个数字: 五 你输入了:53

这怎么可能?

5 个答案:

答案 0 :(得分:14)

documentation明确指出时,Read()将返回您键入的Unicode代码点的索引。

答案 1 :(得分:6)

您观察到的行为在documentation

中有所描述

enter image description here

答案 2 :(得分:4)

转换为字符代码。尝试:

a = int.Parse(Console.ReadLine());

答案 3 :(得分:0)

尝试此操作以达到目标:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter a number: ");
        ConsoleKeyInfo a = Console.ReadKey();
        Console.WriteLine("you Entered : {0}",a.KeyChar);
        Console.ReadKey();
     }
}

答案 4 :(得分:0)

我是C#的新手,但据我所知,在创建变量时不必初始化变量a。编写代码的另一种方法可能是:

class Program
{
    static void Main(string[] args)
    {
        int a;
        Console.WriteLine("Enter a number: ");
        a = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("you Entered : {0}", a);
        Console.ReadKey();
     }
}