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();
}