我一直在討論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 –