Console Read(Line), ReadKey - C#
Формулировка задачи:
Появилась такая проблема. Пишу программу в консоле.
Первое меню отрабатывать должно по ReadKey(чтобы ввод не завершался Enter и сразу отрабатывались управляющие стрелки).
В это меню понадобилось добавить цифры 1 и 2, чтобы менять список(диспетчеров)
Вот верх:
теперь перехожу в метод AddDisp и при добавлении первого диспетчера(надо просто ввести имя) по Enter не считывается в строку введенное значение(курсор переходит на начало строки консоли, сама консоль не меняется.
Вот код метода:
Проблема наверняка "бытовая", подскажите в чем суть.
ConsoleKeyInfo cki; Console.TreatControlCAsInput = true; do { Console.Clear(); Console.WriteLine("Управление самолетом(ESC -выход)"); Console.WriteLine("(Right: + 50км/ч, Left: -50км/ч, Shift- Right : +150км/ч, Shift- Left: -150км/ч)"); Console.WriteLine("(Up: +250м, Down: -250м, Shift- Up: +500м, Shift- Down: -500м)"); Console.WriteLine("1 + Enter -добавить диспетчера, 2 + Enter - удалить диспетчера"); Console.WriteLine(); Console.WriteLine("{0}, {1}", aero.Hight, aero.Speed); cki = Console.ReadKey(); if (cki.Key == ConsoleKey.D1) { AddDisp(disp); }
private void AddDisp(List<Disp> disp) { string enterStr; do { Console.Clear(); Console.Write("Введите имя {0} - го диспетчера(Enter - выход): ", disp.Count); enterStr = Convert.ToString(Console.ReadLine()); if (enterStr.Length > 0) { Disp newDisp = new Disp(enterStr, aero); disp.Add(newDisp); //диспетчер получает имя и самолет, с которым будет работать flyEvent += newDisp.ShowInfo; } } while (enterStr.Length > 0); aero.AddDisp(disp); }
Решение задачи: «Console Read(Line), ReadKey»
textual
Листинг программы
static void Main(string[] args) { Console.TreatControlCAsInput = true; var enterStr = Console.ReadLine(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д