如何基于整数用户输入来打印枚举值?

时间:2018-11-21 14:14:55

标签: c# enums

我有一个看起来像这样的枚举:

 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())

最后,我想获取monthValue并打印等效的Enum。 (例如,4月表示月份值4)

2 个答案:

答案 0 :(得分:1)

您可以简单地将值转换为枚举。不要忘记设置一月的初始值,或者考虑默认情况下枚举从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();
    }
}

如果您不需要临时变量,也可以将其真正转换为枚举。但不要忘记设置默认的枚举值

    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();
    }

答案 1 :(得分:1)

以下代码将月份的名称打印到控制台。为此,它使用静态的Enum.GetName()方法。

string monthName = Enum.GetName(typeof(Month), monthValue - 1);
Console.WriteLine(monthName);