Dans l'exemple ci-dessous, pourquoi la propriété Milliseconds renvoie 0 mais la propriété TotalMilliseconds renvoie 5000
// 5 seconds
TimeSpan intervalTimespan = new TimeSpan(0, 0, 5);
// returns 0
intervalTimespan.Milliseconds;
// returns 5000.0
intervalTimespan.TotalMilliseconds
Simple:
Étant donné que Milliseconds
renvoie la partie en millisecondes, TotalMilliseconds renvoie le total en millisecondes représenté par le Timespan
.
Exemple: 0: 00: 05.047
Millisecondes: 47
Total millisecondes: 5047
Cela se produit parce que intervalTimespan.Milliseconds; retourne le composant millisecondes de la période . Dans votre constructeur de périodes, vous n'avez que heure minute et le deuxième composant, raison pour laquelle le résultat est 0 . __.Ex:
// 5 miliseconds
TimeSpan intervalTimespan = new TimeSpan(0, 0,0,0,5);
// returns 5
intervalTimespan.Milliseconds;
// returns 5
intervalTimespan.TotalMilliseconds
TimeSpan a d'autres surcharges
TimeSpan(hour, minute, seconds)
TimeSpan(days, hour, minute, seconds)
TimeSpan(days, hour, minute, seconds, milliseconds)
La propriété millisecondes renverra la valeur réelle en millisecondes
Nombre total de millisecondes retournés, y compris les jours, les heures, les minutes et les secondes
Il est évident que Miliseconds
renvoie uniquement la partie milisenconds de votre TimeSpan
, alors que TotalMiliseconds
calcule le nombre de millisecondes exprimées en temps par TimeSpan
.
Dans votre cas, renvoie d'abord 0
car vous avez exactement 5 secondes, le second retourne 5000
car 5s == 5000ms
Une chose importante que les autres choses ne mentionnent pas, c'est que (selon la documentation):
La propriété
Milliseconds
représente des millisecondes entières, alors que la propriétéTotalMilliseconds
représente entier et fractionnaire millisecondes.
Cela est également déductible des remarques de TotalMilliseconds
:
Cette propriété convertit la valeur de cette instance de ticks en millisecondes.
Cela a une implication énorme, IMO, car si vous voulez la représentation la plus précise en secondes ou en millisecondes, vous devez utiliser les propriétés TotalSeconds
ou TotalMilliseconds
, qui sont de type double
.