为什么枚举要求显式转换为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

回到顶部