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