Enum to Int.Int到Enum.转换的最佳方式是什么?

sol*_*man 2 .net c# enums

 public Enum Days
 {
    Monday = 1,
    Tuesday = 2,
    Wednesday = 3,
    Thursday = 4,
    Friday = 5,
    Saturday = 6,
    Sunday = 7
 }
Run Code Online (Sandbox Code Playgroud)

现在我想知道如何获取枚举的整数值并将整数值转换为枚举

       int dayNo = (int) Days.Monday;
Run Code Online (Sandbox Code Playgroud)

将dayNo的值更改为1;

        Days day = (Days) 2;
Run Code Online (Sandbox Code Playgroud)

将Days.Tuesday分配给变量日?

这是解析的最佳方法吗?

jas*_*son 7

是的,这很容易检查:

Days d = (Days)3;
Console.WriteLine(d);
Run Code Online (Sandbox Code Playgroud)

这将输出

Wednesday
Run Code Online (Sandbox Code Playgroud)

作为一种最佳做法,你的名字enum应该Day不是Days; d上面的变量表示Day不是Days.请参阅MSDN上的命名准则.


gin*_*boy 6

是的,除了Enum应该这样做,它会做到这一点enum

public enum Days
 {
    Monday = 1,
    Tuesday = 2,
    Wednesday = 3,
    Thursday = 4,
    Friday = 5,
    Saturday = 6,
    Sunday = 7
 }
Run Code Online (Sandbox Code Playgroud)

要使用Enum.Parse你必须提供一个字符串,所以如果你想从int转换你必须通过一个丑陋的字符串.

Days x = (Days)Enum.Parse(typeof(Days), "3");
Days y = (Days)Enum.Parse(typeof(Days), 3.ToString());
Run Code Online (Sandbox Code Playgroud)

......周三都给你.