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

这是我在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(); } } 

这就是结果:

输入一个数字:5您输入:53

这怎么可能?

转换为字符代码。 尝试:

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

正如文档明确指出的那样, Read()返回您键入的Unicode代码点的索引。

您观察到的行为在文档中进行了描述 。

在此处输入图像描述

试着这个来实现你的目标:

 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(); } } 

我是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(); } }