我一直在讨论Kinect传感器的一些微代码示例,并且偶然发现了下面这行。为什么要使用TimeSpan.CompareTo()而不是< >或=
TimeSpan zeroDuration = TimeSpan.FromSeconds(0.0);
TimeSpan timeRemaining = ...;
if (timeRemaining.CompareTo(this.zeroDuration) > 0)
{
}
我了解CompareTo()
的场景,如排序,但为什么会在有条件if()
,而不是更直接的方式被使用是有用的?
if (timeRemaining > this.zeroDuration)
{
}
PS:我会采取与一粒盐,如果它是任何其他来源,但考虑到代码的质量一般认为是有原因的
我认为这只是一个风格的差异,但我可能是错的。 @Amicable主要是关于不同的相等比较,而不是'''比较'CompareTo'。 –
对于TimeSpans,没有任何区别。我的猜测是,示例开发人员并不知道存在重载操作符。 –
@Amicable null出现在字符串之前,它使用CultureInfo.CurrentCulture.CompareInfo.Compare,这意味着它将使用依赖于文化的比较。这可能意味着ß将与德国的SS相当或类似 - 不适用于TimeSpan –