在C#中我们应该使用" byte.MinValue"或" 0"比较计数?
以下哪项是有效的?为什么?
if(customCollection.Count > byte.MinValue)
{//do something
}
OR
if(customCollection.Count > 0)
{//do something
}
答案 0 :(得分:2)
以这种方式使用byte.MinValue
是不直观的。
读者必须过分思考其含义。使用0
,一个常量定义为零(并且如此命名),如果您在道德上反对代码中的幻数,或使用customCollection.Any()
假设customCollection
是IEnumerable<T>
,但不要以这种方式使用byte.MinValue
。
在这里考虑“最不惊讶的原则”或“最小惊讶原则”。
答案 1 :(得分:1)
MinValue
在Byte
类中定义为常量
public const byte MinValue = 0;
因此从效率的角度来看,如何使用它无关紧要。
从可读性的角度来看,使用0
代替byte.MinValue
看起来更好。