这样做不会丢失数据,那么为什么必须显式地将枚举转换为整数呢?
如果它是隐式的,那么当您有更高级别的方法时,例如:
PerformOperation ( OperationType.Silent type )
where PerformOperation
调用一个封装的 C++ 方法,该方法公开如下:
_unmanaged_perform_operation ( int operation_type )
枚举有两种主要且不一致的用途:
enum Medals
{ Gold, Silver, Bronze }
[Flags]
enum FilePermissionFlags
{
CanRead = 0x01,
CanWrite = 0x02,
CanDelete = 0x04
}
在第一种情况下,将这些东西视为数字是没有意义的。它们存储为整数的事实是一个实现细节。您无法逻辑地对金、银和铜进行加、减、乘或除。
在第二种情况下,它also将这些东西视为数字是没有意义的。你不能对它们进行加、减、乘或除。唯一合理的操作是按位操作。
枚举是糟糕的数字,因此您不应该意外地将它们视为数字。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)