我用 C# 编写了一个非常基本的程序。但是,我不明白执行程序的行为。为什么会Read()
干扰ReadLine()
?
int str = Console.Read();
string str1 = Console.ReadLine();
Console.WriteLine(str);
Console.WriteLine(str1);
我用 C# 编写了一个非常基本的程序。但是,我不明白执行程序的行为。为什么会Read()
干扰ReadLine()
?
int str = Console.Read();
string str1 = Console.ReadLine();
Console.WriteLine(str);
Console.WriteLine(str1);
您调用的第一个方法是Read
返回一个字符。但它会阻塞,直到您按下 Enter 键。
来自 MSDN:
当您键入输入字符时,Read 方法会阻止其返回;当您按下 Enter 键时,它会终止。
然后你调用ReadLine
which 返回一行。
当您按下 Enter 键时,该Read
方法将返回第一个字符并将其从输入流中删除。接下来的调用ReadLine
将立即返回该行的其余部分。
请注意,如果您输入数字,Read
则不会返回数字,而是返回数字的 ASCII 表示形式(49 表示“1”等)。如果您对获取整数感兴趣,则应在返回值上使用ReadLine
和使用。int.TryParse
如果您对单个键感兴趣,您应该更喜欢ReadKey
它,因为它只阻止单个键。