性能比较之间枚举的评价以及整数
-
03-07-2019 - |
题
会有差异之间的速度
if (myInt == CONST_STATE1)
和
if (myEnum == myENUM.State1)
在c#?
解决方案
在C#中,无论如何,枚举的内容都是编译器的常量,所以好处是代码易读性
其他提示
要小心关于当使用枚举的是不能使用的任何操作的,这需要反思(或使用他们的照顾).例如:
- myEnumValue.ToString().
- 枚举。分析()
- 枚举。成适合()
- 枚举。GetName()
- 枚举。GetNames()
在情况下,常数的选择做任何操作的,这需要反思并不存在。然而,在情况下的枚举。所以你必须小心对待这一点。
我看了简介报告,其中操作有关的枚举验证/反射了多达5%的CPU时间(一个方案中枚举的验证了每个电话API方法)。这可以大大减少通过编写一类,缓存的结果反映枚举的类型正被使用。
具有说, 我会推荐作出决定的使用与enum不断依据是什么意义,从设计的角度来看.这是同时确保团队意识到的性能影响该业务涉及的反映。
另外,我不确定你是否需要担心这一点。这听起来像是过早的优化。我敢肯定,在任何系统中,都存在比枚举比较更大的瓶颈。 :)
不隶属于 StackOverflow