-6

我用 C# 编写了一个非常基本的程序。但是,我不明白执行程序的行为。为什么会Read()干扰ReadLine()

int str = Console.Read();
string str1 = Console.ReadLine();

Console.WriteLine(str);
Console.WriteLine(str1);
4

1 回答 1

1

您调用的第一个方法是Read返回一个字符。但它会阻塞,直到您按下 Enter 键

来自 MSDN:

当您键入输入字符时,Read 方法会阻止其返回;当您按下 Enter 键时,它会终止。

然后你调用ReadLinewhich 返回一行。

当您按下 Enter 键时,该Read方法将返回第一个字符并将其从输入流中删除。接下来的调用ReadLine将立即返回该行的其余部分。

请注意,如果您输入数字,Read则不会返回数字,而是返回数字的 ASCII 表示形式(49 表示“1”等)。如果您对获取整数感兴趣,则应在返回值上使用ReadLine和使用。int.TryParse

如果您对单个键感兴趣,您应该更喜欢ReadKey它,因为它只阻止单个键。

于 2014-09-27T18:53:34.157 回答