Возврат перечисляемого значения

#c#

#c#

Вопрос:

У меня возникли проблемы с введением перечисления в регистр переключения, и я не уверен, почему, я попробовал имя значений в перечислении, а также соответствующие им значения int, ни то, ни другое не работает. ошибка: Имя ‘GuessThatNumber’ не существует в текущем контексте [NameProgram]csharp(CS0103) и т.д. Для всех опций.

 using System;

public enum MenuOption{
    TestName,
    GuessThatNumber,
    Quit
}

namespace NameProgram
{
    class nameTester
    {
        static void Main(string[] args)
        {
            MenuOption userSelection;
            userSelection = ReadUserOption();
            Console.WriteLine(userSelection);
            do {
                switch(userSelection){
                    case TestName:
                        Console.WriteLine("please enter a name: ");
                        break;
                    case GuessThatNumber:
                        Console.WriteLine("Guess the name: ");
                        break;
                    case default:
                        break;
                }
            } while (userSelection != Quit);
            Console.ReadLine();
        }

        public static MenuOption ReadUserOption(){
            Console.WriteLine("1: Player 1 -- Test name, 2: Player 2 -- Guess name, 3: Player 2 -- Giveup (quit)");

            int number = 0;
            number = Convert.ToInt32(Console.ReadLine());

            return (MenuOption)(number -1);
        }

        // public static TestName(string guess){
        //     if ()
        // }
    }
}
  

Комментарии:

1. Да, это был C #. Я исправил тег OP.

Ответ №1:

Вам нужно использовать полное имя или создать псевдоним.

Полное имя

      switch(userSelection){
         case MenuOption.TestName:
              Console.WriteLine("please enter a name: ");
              break;
         case MenuOption.GuessThatNumber:
              Console.WriteLine("Guess the name: ");
              break;
         default:
              break;
     }
  

Псевдоним

Добавьте одну строку в раздел using

 using static MenuOptions
  

Комментарии:

1. Я думаю, что вместо значения по умолчанию: должно быть по умолчанию:

2. Хорошее место, не удалось определить во время c / p из вопроса.

Ответ №2:

Вы должны написать MenuOption.TestName вместо просто TestName .