C# 如何在同一控制台上等待输入。WriteLine()行?

C# 如何在同一控制台上等待输入。WriteLine()行?,c#,C#,我想提出一个问题,例如: 你叫什么名字?乔 我将如何使用Console.WriteLine来完成此操作,以同时在同一行上等待响应,而不是将其分为以下几行: 你叫什么名字 乔 使用Console.Write,这样就不会写入换行符: Console.Write("What is your name? "); var name = Console.ReadLine(); 使用Console.Write,这样就不会写入换行符: Console.Write("What is your name? ");

我想提出一个问题,例如:

你叫什么名字?乔

我将如何使用Console.WriteLine来完成此操作,以同时在同一行上等待响应,而不是将其分为以下几行:

你叫什么名字


使用Console.Write,这样就不会写入换行符:

Console.Write("What is your name? ");
var name = Console.ReadLine();

使用Console.Write,这样就不会写入换行符:

Console.Write("What is your name? ");
var name = Console.ReadLine();

正如马特所说,使用
控制台。编写
。不过,我也建议显式刷新输出-我相信
WriteLine
会自动执行此操作,但我在使用
Console.Write
然后等待时看到了一些奇怪之处。所以Matt的代码变成:

Console.Write("What is your name? ");
Console.Out.Flush();
var name = Console.ReadLine();

正如马特所说,使用
控制台。编写
。不过,我也建议显式刷新输出-我相信
WriteLine
会自动执行此操作,但我在使用
Console.Write
然后等待时看到了一些奇怪之处。所以Matt的代码变成:

Console.Write("What is your name? ");
Console.Out.Flush();
var name = Console.ReadLine();

我从未使用过flush,也从未出现过任何问题。虽然我不会低估你的经验,但我建议不要使用Flush作为“以防万一”的助手——它会添加不必要的代码。不过,我很高兴Jon添加了这个。我从来都不知道如何使用Flush,在这里,当人们遇到问题时,作为参考是很好的。我只在等待用户输入时使用Flush,而不使用WriteLine。它也可能依赖于操作系统,甚至依赖于.NET framework。考虑到我已经看到这是一个问题,我认为在这里谨慎是明智的。我从来没有使用过flush,也从来没有任何问题。虽然我不会低估你的经验,但我建议不要使用Flush作为“以防万一”的助手——它会添加不必要的代码。不过,我很高兴Jon添加了这个。我从来都不知道如何使用Flush,在这里,当人们遇到问题时,作为参考是很好的。我只在等待用户输入时使用Flush,而不使用WriteLine。它也可能依赖于操作系统,甚至依赖于.NET framework。鉴于我已经看到这是一个问题,我认为在这里保持谨慎是明智的。