为什么枚举要求显式转换为int类型?
这样做不会造成数据丢失,那么必须将枚举显式转换为int的原因是什么呢?
如果它是隐式的,会不会更直观,比如说您有一个更高级别的方法,例如:
PerformOperation ( OperationType.Silent type )
其中PerformOperation
调用的裸作为这样的封装的C ++方法:
_unmanaged_perform_operation ( int operation_type )
回答:
枚举有两种主要用法和不一致用法:
enum Medals{ Gold, Silver, Bronze }
[Flags]
enum FilePermissionFlags
{
CanRead = 0x01,
CanWrite = 0x02,
CanDelete = 0x04
}
在第一种情况下,将这些东西视为数字是没有意义的。它们存储为整数的事实是实现细节。您不能在逻辑上加,减,乘或除金,银和青铜。
在第二种情况下,将这些东西视为数字 也 没有意义。您不能对它们进行加,减,乘或除。唯一明智的操作是按位操作。
枚举是糟糕的数字,因此您不应意外地将它们视为数字。
以上是 为什么枚举要求显式转换为int类型? 的全部内容, 来源链接: utcz.com/qa/425000.html