枚举有什么意义?

Sir*_*lot 2 c# c++

当你必须将它们转换为整数时,枚举被用于像switch语句这样的东西有什么意义?

使用一些常量int不仅仅是更好吗?我想使用枚举,但演员使他们看起来很笨重.我以为它们本来就是彗星,但它们还是别的什么?

他们在C++中有相同的行为吗?

抱歉这个措辞严厉的问题,我的大脑很难受.

oni*_*nit 14

枚举的全部内容是使代码更具可读性.它们不会被整合,因为它们是默认的整数.唯一的区别是,不是来回检查您可能拥有的int值,而是可以使用一组清晰的枚举来使代码更具可读性.

  • 它们不一定是"int",但默认情况下它们是.说话C#. (3认同)
  • 更重要的是,他们根本不是*`int`s; 它们只是隐式转换为`int`.你不能在没有强制转换的情况下将一个`int`分配给枚举,使用枚举实例化一个模板将导致一个不同的实例,而不是使用`int`,`typeid(v).name()`将返回一个不同的串等等 (3认同)

And*_*are 5

枚举具有语义值,可帮助您更轻松地阅读代码.它们比仅使用常量值更有用,因为您可以将它们组合在一起.

将枚举视为命名一组相关常量值的方法.


Bra*_*etz 5

使用 an 的主要好处Enum是代码可读性。它们将一组逻辑值分组为人类(通常)可以比散布在源文件中的大量数字或 const 声明更快地理解的东西。

它们在处理位和相关二进制运算等事物时提供了很多价值Flags