Ho esaminato alcuni esempi di codice Microsoft per il sensore Kinect e sono incappato nella riga seguente.Perché utilizzare TimeSpan.CompareTo() anziché < > o =
TimeSpan zeroDuration = TimeSpan.FromSeconds(0.0);
TimeSpan timeRemaining = ...;
if (timeRemaining.CompareTo(this.zeroDuration) > 0)
{
}
Capisco come CompareTo()
è utile in scenari come l'ordinamento, ma perché dovrebbe essere utilizzato in un condizionale if()
invece di un approccio più diretto?
if (timeRemaining > this.zeroDuration)
{
}
PS: vorrei prendere con un grano di sale se fosse da qualsiasi altra fonte, ma data la qualità generale del codice di assumere un motivo ci sarà
Mi piacerebbe pensare che è solo una differenza stilistica, ma potrei sbagliarmi. @Amicable che riguarda principalmente diversi confronti di uguaglianza, non '>' vs 'CompareTo'. –
Per TimeSpan, non c'è differenza. La mia ipotesi è che lo sviluppatore di campioni non fosse a conoscenza dell'esistenza di operatori sovraccaricati. –
@Impossibile null prima di una stringa e utilizza CultureInfo.CurrentCulture.CompareInfo.Compare, che significa che utilizzerà un confronto dipendente dalla cultura. Ciò potrebbe significare che ß sarà paragonabile a SS in Germania, o simile - non è applicabile a TimeSpan –