C# 如何在if语句中使用Console.ReadLine()?
我正在尝试创建一个方法,自动接收文本输入并延迟一定的时间,但如果按下一个键,它只会立即写入文本 我知道这个错误,以及它发生的原因C# 如何在if语句中使用Console.ReadLine()?,c#,console,C#,Console,我正在尝试创建一个方法,自动接收文本输入并延迟一定的时间,但如果按下一个键,它只会立即写入文本 我知道这个错误,以及它发生的原因 main.cs(83,15):错误CS0029:无法将类型“string”隐式转换为“bool” 但我似乎不知道该怎么做 有什么想法吗?Console.ReadLine()返回一个字符串。 If语句检查布尔值 如果要在If语句中使用Console.ReadLine() 您需要检查if语句中是否相等 比如说 static void DelayText(string te
main.cs(83,15):错误CS0029:无法将类型“string”隐式转换为“bool”
但我似乎不知道该怎么做
有什么想法吗?Console.ReadLine()返回一个字符串。
If语句检查布尔值
如果要在If语句中使用Console.ReadLine()
您需要检查if语句中是否相等
比如说
static void DelayText(string text, int delay = 1000) {
if (Console.ReadLine()) {
Console.WriteLine(text);
}
else {
System.Threading.Thread.Sleep(delay);
Console.WriteLine(text);
}
}
如果输入的字符串是John Smith,则满足条件,If语句将起作用
如果该字符串是任何其他字符串,例如“Mark Owen”
,则将执行else语句
即使您输入了
“JOHN SMITH”
,else语句也会被执行。您将在下面找到优化的代码
if(Console.ReadLine() == "John Smith") //this returns true if the string that was inputted is John Smith
“这会自动接收文本输入并延迟一定的时间,但如果按下一个键,它只会立即写入文本。”-uhm。。什么?你能不能更准确地描述一下你想发生什么?我想我已经足够准确了。它接收文本,并在延迟后打印出来。如果按下一个键,文本会立即打印出来。没什么要详细说明的了。我想要求是明确的。OP希望停止执行,直到按键或延迟时间结束。在这两种情况下,文本都应写入控制台。由于控制台应用程序没有真正的按键事件,我不知道一个简单的解决方案,它也包括延迟时间。
static void DelayText(string text, int delay = 1000)
{
if (string.IsNullOrEmpty(Console.ReadLine()))
System.Threading.Thread.Sleep(delay);
Console.WriteLine(text);
}