#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
.