会有差异之间的速度

if (myInt == CONST_STATE1)

if (myEnum == myENUM.State1)

在c#?

有帮助吗?

解决方案

在C#中,无论如何,枚举的内容都是编译器的常量,所以好处是代码易读性

其他提示

要小心关于当使用枚举的是不能使用的任何操作的,这需要反思(或使用他们的照顾).例如:

  1. myEnumValue.ToString().
  2. 枚举。分析()
  3. 枚举。成适合()
  4. 枚举。GetName()
  5. 枚举。GetNames()

在情况下,常数的选择做任何操作的,这需要反思并不存在。然而,在情况下的枚举。所以你必须小心对待这一点。

我看了简介报告,其中操作有关的枚举验证/反射了多达5%的CPU时间(一个方案中枚举的验证了每个电话API方法)。这可以大大减少通过编写一类,缓存的结果反映枚举的类型正被使用。

具有说, 我会推荐作出决定的使用与enum不断依据是什么意义,从设计的角度来看.这是同时确保团队意识到的性能影响该业务涉及的反映。

另外,我不确定你是否需要担心这一点。这听起来像是过早的优化。我敢肯定,在任何系统中,都存在比枚举比较更大的瓶颈。 :)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top