Ich habe einige Microsoft-Codebeispiele für den Kinect-Sensor gelesen und bin über die folgende Zeile gestolpert.Warum TimeSpan.CompareTo() anstelle von < > oder =
TimeSpan zeroDuration = TimeSpan.FromSeconds(0.0);
TimeSpan timeRemaining = ...;
if (timeRemaining.CompareTo(this.zeroDuration) > 0)
{
}
Ich verstehe, wie CompareTo()
in Szenarien wie das Sortieren nützlich ist, aber warum sollte es in einem bedingten if()
anstelle des direkteren Ansatz verwendet werden?
if (timeRemaining > this.zeroDuration)
{
}
PS: Ich würde es mit einem Körnchen Salz nehmen, wenn es aus einer anderen Quelle ist aber die allgemeine Qualität des Codes gegeben annehmen, dass es ein Grund,
würde ich nehme an, es ist nur ein stilistischer Unterschied, aber ich könnte falsch sein. @Amicable das geht hauptsächlich um verschiedene Gleichheitsvergleiche, nicht '>' vs 'CompareTo'. –
Für TimeSpans gibt es keinen Unterschied. Meine Vermutung ist, dass der Sample-Entwickler nicht wusste, dass überladene Operatoren existierten. –
@Amicable null kommt vor einer Zeichenfolge und es verwendet CultureInfo.CurrentCulture.CompareInfo.Compare, was bedeutet, dass es einen kulturabhängigen Vergleich verwendet. Dies könnte bedeuten, dass ß in Deutschland mit SS gleichgestellt wird oder ähnliches - gilt nicht für TimeSpan –