【问题标题】:Enum to int best practice [duplicate]枚举到int最佳实践[重复]
【发布时间】:2013-11-09 13:42:01
【问题描述】:

我无法在两种转换方法之间进行选择。从 enum 转换为 int 的最佳做法是什么

1:

public static int EnumToInt(Enum enumValue)
{
    return Convert.ToInt32(enumValue);
}

2:

public static int EnumToInt(Enum enumValue)
{
    return (int)(ValueType)enumValue;
}

【问题讨论】:

    标签: c# enums


    【解决方案1】:

    我会在 Enum 上以扩展方法的形式加入第三种选择

    public static int ToInt(this Enum e)
    {
        return Convert.ToInt32(e);
    }
    
    enum SomeEnum
    {
        Val1 = 1,
        Val2 = 2,
        Val3 = 3,
    }
    
    int intVal = SomeEnum.ToInt();
    

    【讨论】:

      【解决方案2】:

      除了@dtb

      您可以通过在等号后面提供它来指定枚举的 int(或标志)。

      enum MyEnum
      {
          Foo = 0,
          Bar = 100,
          Baz = 9999
      }
      

      干杯

      【讨论】:

        【解决方案3】:

        如果你有一个枚举,比如

        enum MyEnum
        {
            Foo,
            Bar,
            Baz,
        }
        

        以及该枚举的值,例如

        MyEnum value = MyEnum.Foo;
        

        那么将值转换为int 的最佳方法是

        int result = (int)value;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-16
          • 1970-01-01
          • 1970-01-01
          • 2010-10-19
          • 2010-10-03
          • 2018-09-10
          • 1970-01-01
          相关资源
          最近更新 更多