C#我们应该使用" byte.MinValue"或" 0"比较计数?

时间:2015-09-02 07:28:42

标签: c# .net

在C#中我们应该使用" byte.MinValue"或" 0"比较计数?

以下哪项是有效的?为什么?

if(customCollection.Count > byte.MinValue)
{//do something
}    

OR

if(customCollection.Count > 0)
{//do something
}

2 个答案:

答案 0 :(得分:2)

以这种方式使用byte.MinValue是不直观的。

读者必须过分思考其含义。使用0,一个常量定义为零(并且如此命名),如果您在道德上反对代码中的幻数,或使用customCollection.Any()假设customCollectionIEnumerable<T> ,但不要以这种方式使用byte.MinValue

在这里考虑“最不惊讶的原则”或“最小惊讶原则”。

答案 1 :(得分:1)

MinValueByte类中定义为常量

public const byte MinValue = 0;

因此从效率的角度来看,如何使用它无关紧要。

从可读性的角度来看,使用0代替byte.MinValue看起来更好。