Например, позвольте быть enum и зациклить его
enum Main_menu { NewGame, Options, AboutAuthor, Exit }
static void Main(string[] args)
{
int k = 0;
foreach (Main_menu item in Enum.GetValues(typeof(Main_menu)))
{
Console.Write($"{k} ");
Console.Write(item);
Console.WriteLine();
k++;
}
Console.ReadLine();
}
Это перечисление представляет очень простое меню типа, в программе, над которой я работаю, я должен использовать такое меню несколько раз, поэтому я предпочитаю добавлять его в отдельную функцию, нацеливая его на часть кода с помощью цикла и используя горячие клавиши Ctrl + Dot. Я получил следующее:
enum Main_menu { NewGame, Options, AboutAuthor, Exit }
static void Main(string[] args)
{
int k = 0;
k = LoopOverEnum(k);
Console.ReadLine();
}
private static int LoopOverEnum(int k)
{
foreach (Main_menu item in Enum.GetValues(typeof(Main_menu)))
{
Console.Write($"{k} ");
Console.Write(item);
Console.WriteLine();
k++;
}
return k;
}
}
Теперь я хочу добавить enum Main_menu в качестве переменной,Итак, я смогу применить этот цикл для каждого определенного перечисления, я пытаюсь сделать это следующим образом:
namespace ConsoleApp11
{
class Program
{
enum Main_menu { NewGame, Options, AboutAuthor, Exit }
static void Main(string[] args)
{
int k = 0;
k = LoopOverEnum(k, Main_menu);
Console.ReadLine();
}
private static int LoopOverEnum(int k, enum Main_menu)
{
foreach (Main_menu item in Enum.GetValues(typeof(Main_menu)))
{
Console.Write($"{k} ");
Console.Write(item);
Console.WriteLine();
k++;
}
return k;
}
}
}
Но код функции становится полностью красным с различными ошибками.Вопросы:
1) Как написать функцию, которая перебирает перечисление, если перечисление является переменным?
2) Как использовать пробел в определении терминов перечисления?