代码之家  ›  专栏  ›  技术社区  ›  etoisarobot

我是否总是必须强制执行enum,还是我做错了什么?

  •  2
  • etoisarobot  · 技术社区  · 14 年前

    如果我有这样一个非常简单的整数枚举。

      enum alignment { left, center, right}
    

    但是如果我尝试使用枚举中的值

    header.Alignment = alignment.center;
    

    我被告知我需要将alignment.center转换为int。这没什么大不了的,但我想知道我是否做错了什么,或者这就是枚举的工作方式。

    4 回复  |  直到 14 年前
        1
  •  8
  •   Randolpho    14 年前

    如果 header.Alignment int ,那么是的,你总是要投一个 .

    你可以让 标题.对齐 alignment ,这样你就不用再投了。如果您处理的是只接受 不过,你运气不好。

        2
  •  5
  •   Shaun Bowe    14 年前

    header.Alignment 属性是一个整数,您需要强制转换它。

    也就是说,将Alignment属性更改为Alignment类型可能更有意义。这样,在设置它时就不需要强制转换,如果需要的话,仍然可以访问整数值。

        3
  •  3
  •   Scott M.    14 年前

    枚举备份存储是一个int,但不能轻松地将其用作int。枚举的思想是有一个 强类型 常量的集合,以便可以将它们用作对齐值。当你把它当作int的时候,你就把这个强大的输入扔出了窗口。您应该将头的Alignment属性更改为Alignment类型,而不是int类型。

        4
  •  0
  •   Sharjeel Aziz    14 年前

    对。需要显式强制转换才能从 枚举类型(对齐) 积分型