Soru C # Timespan Milisaniye vs TotalMilliseconds


Aşağıdaki örnekte, neden Milisaniye özelliği 0'a dönüyor, ancak TotalMilliseconds özelliği 5000'i döndürüyor

// 5 seconds
TimeSpan intervalTimespan = new TimeSpan(0, 0, 5);

// returns 0
intervalTimespan.Milliseconds;

// returns 5000.0
intervalTimespan.TotalMilliseconds

44
2018-03-30 09:18


Menşei


@Oliver benim de düşüncemdi, ama SF'de var olan toplum ruhuna uygun olduğunu düşünmüyorum. - David Kemp
Visual Studio'nun yardımı almak için gereken süreye bir cevap bulduğum için yardım edeceğim. - AJM
@AJM: Gerçekten cahil davranıyorsun. MSDN, çevrimiçi de mevcuttur! - Daniel Hilgarth
Evet, açıkçası, ancak dokümantasyondaki fark bu kadar net değil, dolayısıyla soru. Ayrıca, şüpheli olduğunda diğer geliştiricilerin güvencesini almak iyidir. - AJM
@AJM: Evet, yardımı başlatmak çok uzun sürüyor. Bu yüzden normalde MSDN Google'da Ara ve opera tarayıcım için bir arama motoru ekleyin. Yani sadece girebilirim msdn keywords ve tüm sonuçları MSDN'den çıkarın. - Oliver


Cevaplar:


Basit:

  • Milisaniye, saniyede oluşmayan kalan milisaniyedir.
  • TotalMilliseconds, milisaniye olarak ifade edilen zaman diliminin tam süredir.

52
2018-03-30 09:20





Çünkü Milliseconds Milisaniye bölümünü döndürür ve TotalMilliseconds tarafından temsil edilen toplam milisaniye döndürür Timespan

Örnek: 0: 00: 05.047

Milisaniye: 47

Toplam Milisaniye: 5047


56
2018-03-30 09:20





Bu, intervalTimespan.Milliseconds nedeniyle hapise girer; zaman çizelgesinin milisecond bileşenini döndürür. Zaman dilimi yapıcınızda sadece saat dakika ve ikinci bileşeniniz olur, bu nedenle sonuç 0'dır. intervalTimespan.TotalMilliseconds - Bu, zaman çizelgesinin toplam milisaniyesini alır. Ör:

// 5 miliseconds
TimeSpan intervalTimespan = new TimeSpan(0, 0,0,0,5);

// returns 5
intervalTimespan.Milliseconds;

// returns 5
intervalTimespan.TotalMilliseconds

2
2018-03-30 09:24





Çok açık, Miliseconds sadece milisenconds bölümünü döndürür TimeSpan, süre TotalMiliseconds tarafından temsil edilen kaç milisaniye olduğunu hesaplar TimeSpan.

Senin durumunda, ilk dönüşler 0 çünkü tam 5 saniyen var, ikinci iadeler 5000 çünkü 5s == 5000ms


1
2018-03-30 09:22





TimeSpan diğer aşırı yüklere sahiptir

TimeSpan(hour, minute, seconds)
TimeSpan(days, hour, minute, seconds)
TimeSpan(days, hour, minute, seconds, milliseconds)

Milisaniye özelliği gerçek milisaniye değerini döndürür

TotalMilliseconds, gün, saat, dakika ve saniye de dahil olmak üzere genel milisaniye döndürür


1
2018-03-30 09:38





Diğer şeylerden bahsetmeyen önemli bir şey şudur: (belgelere göre):

Milliseconds mülkiyet tüm milisaniyeyi temsil ederken, TotalMilliseconds özellik temsil bütün ve kesirli milisaniye.

Bu aynı zamanda sözlerden de düşülebilir TotalMilliseconds:

Bu özellik, bu örneğin değerini kenelerden milisaniyeye dönüştürür.

Bunun büyük bir anlamı var, IMO, çünkü eğer istersen en kesin temsil saniye veya milisaniyede kullanmalısınız TotalSeconds veya TotalMilliseconds özellikleri, her ikisi de tiptedir double.


0
2018-06-29 13:41