我是否总是要施恩或我做错了什么?

时间:2010-07-28 19:42:34

标签: c# enums

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

  enum alignment { left, center, right}

我希望数据类型为int,我理解这是默认值,并且值为left = 0,center = 1,right = 2.

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

header.Alignment = alignment.center;

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

4 个答案:

答案 0 :(得分:8)

如果header.Alignment的类型为int,那么是的,您总是需要转换为int

你可以制作header.Alignment类型的alignment,然后你就不必投了。但是,如果您正在处理只接受int的旧版或第三方代码,那么您运气不佳。

答案 1 :(得分:5)

如果header.Alignment属性是整数,则需要将其强制转换。

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

答案 2 :(得分:3)

枚举后备存储是一个int,但您不能轻易地将它用作int。枚举的想法是有一个强类型常量集合,因此您可以将它们用作比对值。当你把它当作一个int时,你会把那个强大的打字输出窗口。您应该将标头的Alignment属性更改为Alignment类型而不是int。

答案 3 :(得分:0)

是。需要显式转换才能将枚举类型(对齐)转换为整数类型