代码之家  ›  专栏  ›  技术社区  ›  Paul Michaels

将枚举转换为int

  •  5
  • Paul Michaels  · 技术社区  · 14 年前

    我有下面的枚举

    public enum TESTENUM
    {
        Value1 = 1,
        Value2 = 2
    }
    

    然后我想用它来比较一个整数变量,比如:

    if ( myValue == TESTENUM.Value1 )
    {
    }
    

    但是为了做这个测试,我必须按如下方式转换枚举(或者假设将整数声明为enum类型):

    if ( myValue == (int) TESTENUM.Value1 )
    {
    }
    

    有没有一种方法可以告诉编译器枚举是一系列整数,这样我就不必强制转换或重新定义变量了?

    4 回复  |  直到 14 年前
        1
  •  12
  •   codekaizen    14 年前

    不。您需要强制转换枚举值。如果不想强制转换,请考虑使用具有常量int值的类:

    class static EnumLikeClass
    {
        public const int Value1 = 1;
        public const int Value2 = 2;
    }
    

    然而,这也有一些缺点;缺乏类型安全性是使用 enum

        2
  •  2
  •   Juan Nunez    14 年前

    您可以告诉枚举它包含整数:

    public enum TESTENUM: int
    {
        Value1 = 1,
        Value2 = 2
    }
    

        3
  •  2
  •   PjL    14 年前

    请记住,在上下文中强制转换枚举值 怎样

        4
  •  1
  •   Pavel Radzivilovsky    14 年前