Вывести сообщение в консоль при нажатии клавиши - C#
Формулировка задачи:
есть такая программа, должна по нажатию клавиши выводить в консоль сообщение, в чем проблема понять не могу
если можно с краткими пояснениями, перелопачивать кучу литературы по новой не охота
using System;
class ConveyerControl
{
public enum Action{Start, Stop, Forward, Backward};
public void Conveyer(Action com) //вывод при нажатии клавиши
{
switch (com){
case Action.Start:
Console.WriteLine("Конвейер запущен");
break;
case Action.Stop:
Console.WriteLine("Конвейер остановлен");
break;
case Action.Forward:
Console.WriteLine("Конвейер перемещен на позицию впреред");
break;
case Action.Backward:
Console.WriteLine("Конвейер перемещен на позицию назад");
break;
}
}
}
class Conveyer
{
static void Main()
{
ConveyerControl c = new ConveyerControl();
bool Automatic = false;
ConsoleKeyInfo cki;
cki = Console.ReadKey(true); //вроде как обработчик событий
Console.WriteLine("Это эмулятор терминала управления конвейером, для управления используются клавиши:"+
"\n S - для старта конвейера," +
"\n Q - для остановки конвейера," +
"\n Стрелка Влево - для продвижения конвейера вперед," +
"\n Стрелка Вправо - для продвижения конвейера назад," +
"\n Ручное управление доступно только когда конвейер остановлен!" +
"\n\n конвейер выключен.");
while(Automatic == true) //тут вроде начудил
if(cki.Key == ConsoleKey.Q){
Automatic = false;
c.Conveyer(ConveyerControl.Action.Stop());}
while(Automatic== false)*/
if(cki.Key == ConsoleKey.S) Console.WriteLine("jsdhfkjhdshs");
Automatic = true;
c.Conveyer(ConveyerControl.Action.Start());}
if(cki.Key == ConsoleKey.LeftArrow)
c.Conveyer(ConveyerControl.Action.Backward());
if(cki.Key == ConsoleKey.RightArrow)
c.Conveyer(ConveyerControl.Action.Forward());
}
}Решение задачи: «Вывести сообщение в консоль при нажатии клавиши»
textual
Листинг программы
static void Main()
{
ConveyerControl c = new ConveyerControl();
ConsoleKeyInfo cki;
Console.ReadKey(true); //вроде как обработчик событий
Console.WriteLine("Это эмулятор терминала управления конвейером, для управления используются клавиши:"+
"\n S - для старта конвейера," +
"\n Q - для остановки конвейера," +
"\n Стрелка Влево - для продвижения конвейера вперед," +
"\n Стрелка Вправо - для продвижения конвейера назад," +
"\n Ручное управление доступно только когда конвейер остановлен!" +
"\n\n конвейер выключен.");
while (true)
{
cki = Console.ReadKey(true);
if (cki.Key == ConsoleKey.S)
{
c.Conveyer(ConveyerControl.Action.Start);
}
if (cki.Key == ConsoleKey.LeftArrow)
c.Conveyer(ConveyerControl.Action.Backward);
if (cki.Key == ConsoleKey.RightArrow)
c.Conveyer(ConveyerControl.Action.Forward);
if (cki.Key == ConsoleKey.Q)
{
c.Conveyer(ConveyerControl.Action.Stop);
break;
}
}
Console.ReadKey();
}