如果我有一个非常简单的这样的整数枚举。
enum alignment { left, center, right}
我希望数据类型为int,我理解这是默认值,并且值为left = 0,center = 1,right = 2.
但是,如果我尝试使用枚举中的值,如
header.Alignment = alignment.center;
我被告知需要将alignment.center转换为int。这不是什么大问题,但我想知道我做错了什么,或者只是枚举的方式。
答案 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)
是。需要显式转换才能将枚举类型(对齐)转换为整数类型。