я не понимаю, что я здесь отсутствует, но это, кажется, что Console.ReadKey()
все еще активен и вызывает консоль, чтобы заставить меня дважды войти, используя Console.ReadLine()
после вызова Console.ReadKey()
.C# Console.ReadLine после ReadKey ожидает ввода в два раза
Я искал вверх и вниз, как избежать ReadKey()
после того, как был сделан выбор, но безрезультатно.
Чтобы уточнить, это непредвиденное поведение: Когда консоль всплывает, пользователю представлены эти три варианта в качестве примера. Когда пользователь затем вводит «u» или «h», консоль не ждет; он немедленно выполняет действие без нажатия на пользователя . Введите.
Я сделал что-то неправильно, реализуя это?
static void Main(string[] args)
{
Console.WriteLine("u up");
Console.WriteLine("h home");
Console.WriteLine("x exit");
Console.WriteLine("---------------------------------");
Console.WriteLine(" [Enter Your Selection]");
Console.WriteLine("---------------------------------");
Console.Write("Enter Selection: ");
ConsoleKeyInfo selection;
Console.TreatControlCAsInput = true;
int value;
selection = Console.ReadKey();
if (char.IsDigit(selection.KeyChar))
{
value = int.Parse(selection.KeyChar.ToString());
value -= 1;
Console.WriteLine("You've entered {0}", value);
}
else
{
switch (selection.Key)
{
case ConsoleKey.U:
blurp();
break;
case ConsoleKey.H:
blurp();
break;
case ConsoleKey.X:
System.Environment.Exit(0);
break;
default:
Console.WriteLine("Invalid Input...");
break;
}
}
}
public static void blurp()
{
Console.WriteLine("");
Console.Write("Enter Another Value: ");
string value = Console.ReadLine();
Console.WriteLine("You've entered {0}", value);
}
Я не понимаю проблему. Вы останавливаетесь до нажатия клавиши. Если это U или H, вы остановитесь, ожидая, пока пользователь нажмет Enter. Чем это отличается от того, что вы испытываете? – hoodaticus
Пожалуйста, уточните свой вопрос, трудно понять, что вы просите. –
, если вы запустите код, когда пользователь выбирает либо u, h, либо x, консоль не ждет, он выполняет действие без нажатия клавиши enter ... в этом примере я разместил метод «blurp» внутри u и h case, который затем предлагает пользователю ввести другое значение. Когда пользователь вводит значение и нажимает кнопку ввода, консоль заставляет вас вводить 2x до того, как он уйдет, и никогда не пишет «вы ввели бла» – Autonomic