Какой код я бы поместил в моем случае ввода? - PullRequest
0 голосов
/ 02 декабря 2011

Я сделал коммутатор, в котором я использую клавишу со стрелкой вверх, клавишу со стрелкой вниз и клавишу ввода. Однако я не могу придумать, как поместить код в мой случай ввода, в котором я могу выбрать опцию.

public static void entries()
    {
        keyPressed = Console.ReadKey(true);
        switch (keyPressed.Key)
        {

            case ConsoleKey.DownArrow:
                if (keyPressed.Key.ToString() == "DownArrow")// selects the curitem when the down arrow key is pressed
                {
                    curItem++;
                    if (curItem > menuItems.Length - 1) curItem = 0;
                }
                break;
            case ConsoleKey.UpArrow:
                if (keyPressed.Key.ToString() == "UpArrow")// selects the curitem when the up arrow key is pressed
                {
                    curItem--;
                    if (curItem < 0) curItem = Convert.ToInt16(menuItems.Length - 1);

                }
                break;
            case ConsoleKey.Enter:
                if (keyPressed.Key.ToString() == "Enter")// when enter is pressed it will go to one of the choices 
                {

                }
                break;
            default:
                break;
        }
    }

Ответы [ 2 ]

1 голос
/ 02 декабря 2011

Ваша идея о вложении if утверждений верна или имеет другой переключатель. Я бы, вероятно, переформулировал это в другую функцию:

case ConsoleKey.Enter:
   chooseOption(curItem);
   break;

...

void chooseOption(int item)
{
   switch(item)
   {
      case 1:
        //Do item 1
        break;
      case 2:
        //Do item 2
        break;
      case 3:
        //Do item 3
        break;
   }
}
0 голосов
/ 02 декабря 2011

На основании вашего комментария.Вот как вы можете отобразить текущий элемент внутри массива menuItems.Я предполагаю, что menuItems содержит некоторые строки или целые числа или что-то, что может быть легко записано в консоль.

case ConsoleKey.Enter:
// when enter is pressed it will go to one of the choices 
   Console.Clear();
   Console.WriteLine(menuItems[curItem]);
   break;
...