负到-1,0到0,正到1

ser*_*hio 3 .net

我有一个枚举MyEnum (Neg -1; None 0; Pos 1).

我使用结果CompareTo()来初始化该枚举的对象.

什么是最高效的.NET办法做到这一点(消极为-1,0比0,正到1)?

NB.
CompareTo()返回一个Integer值..

kni*_*ttl 11

Math.Sign在.net框架中调用了一个内置方法


ste*_*ell 10

正如@Henrik和@ knittl所说,你应该使用Math.Sign.但是,如果您对.Net框架在幕后所做的事情感兴趣,则以下代码来自Reflector.

public static int Sign(int value)
{
  if (value < 0)
  {
    return -1;
  }
  if (value > 0)
  {
    return 1;
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • 过早优化是万恶之源 (8认同)