Как напечатать значение Enum на основе целочисленного пользовательского ввода? - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть Enum, который выглядит так:

 public enum Month 
    {
        January, February, March,
        April, May, June, July, August,
        Septemper, October, November, December
    };

Что мне действительно нужно сделать, так это спросить и прочитать у пользователя число, похожее на это:

Console.WriteLine("Enter the number of the 
month")
int monthValue=int.parse(Console.ReadLine())

Наконец, я хочу взять значение месяца и напечатать эквивалентный Enum.(например, апрель за месяц, значение 4)

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Следующий код выводит название месяца на консоль.Для этого используется статический Enum.GetName () -метод.

string monthName = Enum.GetName(typeof(Month), monthValue - 1);
Console.WriteLine(monthName);
0 голосов
/ 21 ноября 2018

Вы можете просто привести значение к перечислению.Не забудьте установить начальное значение для января или учесть, что по умолчанию enum начинается с 0;

Консольное приложение будет следующим:

class Program
{

    public enum Month
    {
        January, February, March,
        April, May, June, July, August,
        Septemper, October, November, December
    };

    static void Main(string[] args)
    {
        Console.WriteLine("Enter the number of the month");

        int monthValue = 0;
        int.TryParse(Console.ReadLine(), out monthValue);
        Console.WriteLine((Month)monthValue - 1);
        Console.ReadKey();
    }
}

, если вам не нужновременная переменная, вы также можете преобразовать ее в enum.Но не забудьте установить значение по умолчанию enum

    public enum Month
    {
        January = 1, February, March,
        April, May, June, July, August,
        Septemper, October, November, December
    };

    static void Main(string[] args)
    {
        Console.WriteLine("Enter the number of the month");
        var input = Enum.Parse(typeof(Month), Console.ReadLine());
        Console.WriteLine(input);
        Console.ReadKey();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...