Console Read(Line), ReadKey - C#

Узнай цену своей работы

Формулировка задачи:

Появилась такая проблема. Пишу программу в консоле. Первое меню отрабатывать должно по ReadKey(чтобы ввод не завершался Enter и сразу отрабатывались управляющие стрелки). В это меню понадобилось добавить цифры 1 и 2, чтобы менять список(диспетчеров) Вот верх:
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);
                }
теперь перехожу в метод AddDisp и при добавлении первого диспетчера(надо просто ввести имя) по Enter не считывается в строку введенное значение(курсор переходит на начало строки консоли, сама консоль не меняется. Вот код метода:
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();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы