Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何禁用用户';当用户在c#中操作时,循环的输入和转义?_C#_Loops_While Loop - Fatal编程技术网

如何禁用用户';当用户在c#中操作时,循环的输入和转义?

如何禁用用户';当用户在c#中操作时,循环的输入和转义?,c#,loops,while-loop,C#,Loops,While Loop,今天我有一个非常简单的问题,我知道可能会有不好的反馈。我想摆脱使用c#在控制台应用程序上禁用用户输入的循环。我有这个: while (true) { Console.ReadKey (true); } string key = Console.ReadKey().Key.ToString(); if (key.ToUpper() == "F10") { Console.WriteLine ("

今天我有一个非常简单的问题,我知道可能会有不好的反馈。我想摆脱使用c#在控制台应用程序上禁用用户输入的循环。我有这个:

while (true) {
            Console.ReadKey (true);
        }
        string key = Console.ReadKey().Key.ToString();
            if (key.ToUpper() == "F10") {
            Console.WriteLine ("Hello!");
        }
基本上,我想禁用用户在控制台上的写入功能,但我希望当用户按F10时会发生一些事情

谢谢你抽出时间。再见。

试试这个

bool userInput = true;

while (userInput) {
            Console.ReadKey (true);
            string key = Console.ReadKey().Key.ToString();
            if (key.ToUpper() == "F10") {
            Console.WriteLine ("Hello!");
            userInput = false;
            }
        }

您可以从第一个
控制台检查输入。ReadKey()
查看它是否为
F10
。然后,您可以创建一个布尔值来检查是否命中了
F10
,并将其应用于
while
循环,如下所示:

bool restrictInput = true;
while (restrictInput)
{
    string key = Console.ReadKey(true).Key.ToString();
    if (key.ToUpper() == "F10")
    {
        Console.WriteLine("Hello!");
        restrictInput = false;
    }
}
您还可以使用
break代替
限制输入=假
将带您脱离
循环。

这应该会起作用

    while (true)
        {
            var input = Console.ReadKey(true);
            Console.WriteLine(input.Key.ToString() + " pressed");
            if (input.Key == ConsoleKey.F10)
            {
                Console.WriteLine("Breaking loop.");
                break;
            }
        }

这应该满足您的要求:

while (true)
{
    if(Console.ReadKey(true).Key == ConsoleKey.F10)
          Console.WriteLine("Hello!");
}

在C#
中,布尔值
关键字不存在<代码>布尔值
布尔值
存在。这也是一个无限循环.Woops,太习惯java了哈哈。是的,我现在明白了,应该在while循环中包含整个if语句,对吗?谢谢您的时间。我试试这个。这是一个无限循环。是什么触发了循环的“中断”?如果没有,循环将永远不会结束。因此:一个无限循环。这是一个无限循环,除非被
Ctrl+C
终止。OP希望在按下
F10
时终止循环。根据他的说明,他希望:1。“…禁止用户在控制台上写入…”2。“…当用户按下F10时,发生了一些事情。”用户输入仍处于启用状态。继续按
F10
,您将看到
您好在控制台上。他指定他希望“…禁止用户在控制台上写入…”而不是输入本身。否则,他不会要求F10执行功能。谢谢您抽出时间。我试试这个。谢谢你抽出时间。我试试这个谢谢你的时间。我试试这个。