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