Функция для возврата выбора меню; Оператор переключения для проекта

#c# #function #switch-statement

#c# #функция #оператор переключения

Вопрос:

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

 class Program
{   
    static void displayMainMenu()
    {
        string title = "Old Yeller Pet Store";
        Console.WriteLine("nn");
        Console.WriteLine(String.Format("{0,"   ((Console.WindowWidth /2)   (title.Length / 2 ))   "}", title));
        Console.WriteLine("n");

        title = "Main Menu";
        Console.WriteLine("nn");
        Console.WriteLine(String.Format("{0,"   ((Console.WindowWidth /2)   (title.Length / 2 ))   "}", title));
        Console.WriteLine("n");

        string line = "1.    Buy a Pet";
        Console.WriteLine(line.PadLeft(line.Length 1   50));

        string line2 = "2.    Buy Food";
        Console.WriteLine(line2.PadLeft(line2.Length 1   50));

        string line3 = "3.    File OPs";
        Console.WriteLine(line3.PadLeft(line3.Length 1   50));

        string line4 = "4.    Manager";
        Console.WriteLine(line4.PadLeft(line4.Length 1   50));

        string line5 = "5.    Quit";
        Console.WriteLine(line5.PadLeft(line5.Length 1   50));
    }

    static void getChoice()
    {
        Console.WriteLine("Please input which option you choose to use");
    }

    public static void Main(string[] args)
    {
        displayMainMenu();
        Console.ReadKey();
    }
}
  

}

Ответ №1:

Что вам следует сделать, так это изменить метод getChoice, чтобы возвращать строку, которая будет выбранным параметром. И внутри метода getChoice напишите консоль.Прочитайте строку и поместите значение в переменную и верните переменную. Таким образом, вы вызываете функцию getChoice после displayMenu и получаете значение.

Я бы предоставил код сам, но поскольку это скорее домашнее задание, я думаю, вам будет лучше понять это и попытаться сделать это самостоятельно с помощью этой идеи :)!

Надеюсь, это поможет!

Ответ №2:

Рассмотрим эту Консоль.ReadKey() будет ждать, пока вы нажмете клавишу, чтобы продолжить. После того, как вы это сделаете, откроется консоль свойств.ReadKey().Клавиша будет содержать значение клавиши, нажатой Таким образом, в этом случае…

 var key = Console.ReadKey().Key;
switch (key) {
    case ConsoleKey.D1:
        Console.WriteLine("You pressed 1");
        break;
    case ConsoleKey.D2:
        Console.WriteLine("You pressed 2");
        break;
    //etc...//
    default:
        Console.WriteLine("You pressed something else");
        break;
}
  

Ответ №3:

Итак, я чувствую, что это прогресс, но я могу ошибаться? Заменит ли оператор Switch оператор If в моей функции getChoice?

 class Program
{   
    static void displayMainMenu()
    {
        string title = "Old Yeller Pet Store";
        Console.WriteLine("nn");
        Console.WriteLine(String.Format("{0,"   ((Console.WindowWidth /2)   (title.Length / 2 ))   "}", title));
        Console.WriteLine("n");

        title = "Main Menu";
        Console.WriteLine("nn");
        Console.WriteLine(String.Format("{0,"   ((Console.WindowWidth /2)   (title.Length / 2 ))   "}", title));
        Console.WriteLine("n");

        string line = "1.    Buy a Pet";
        Console.WriteLine(line.PadLeft(line.Length 1   50));

        string line2 = "2.    Buy Food";
        Console.WriteLine(line2.PadLeft(line2.Length 1   50));

        string line3 = "3.    File OPs";
        Console.WriteLine(line3.PadLeft(line3.Length 1   50));

        string line4 = "4.    Manager";
        Console.WriteLine(line4.PadLeft(line4.Length 1   50));

        string line5 = "5.    Quit";
        Console.WriteLine(line5.PadLeft(line5.Length 1   50));


    }

    static void getChoice()
    {
        string option;
        int choice;
        Console.WriteLine("Please input which number option you choose to use");
        option = Console.ReadLine();
        choice = Convert.ToInt32(option);
        if (choice == 1)
        {
            Console.Write("Lipsum");
            //code to open Buy a Pet menu
        }



    }


    public static void Main(string[] args)
    {
        displayMainMenu ();
        getChoice();



        Console.ReadKey();

    }
}