2012-06-22 11 views
5

Ben buna benzer bir yapıcı yöntemi vardır:Nullable DateTime alan bir yönteme geçtiğinde neden bir DateTime milisaniye kaybederim?

public class Foo 
{ 
public Foo (DateTime? startFrom) 
     { 
      _startFrom = startFrom; 
     } 
} 

Ve böyle bu yapıcı yöntemini sesleniyorum:

var context = new Foo(new DateTime(2012, 7, 15, 11, 2, 10, 2)); // 2 miliseconds 

Ama bunu hata ayıklama, ben 002 milisaniye olarak ayarlanmış olduğunu bulmak Nullable DateTime parametresi olan varsayılan kurucuya geçirildiğinde 000.

Normal olarak NULL yapılabilir DateTime alan bir yönteme parametre olarak ilettiğimde, bir DateTime milisaniye kaybediyor mu normal mi?

+0

DateTime'ın içeriğini nasıl görüntülüyorsunuz? Hata ayıklayıcı, milisaniye göstermeyen DateTime.ToString() yöntemini kullanır. Nesneyi hata ayıklayıcısında genişletirseniz, milisaniye sayısını görürsünüz. –

cevap

4

Hayır, bu normal değil - ve bunun bir tanılama sorunu olduğundan şüpheleniyorum.

Kodda hata ayıkladığınızda, milisaniye sayısını dize halinde göstermeyecek bir saat penceresi kullandığınızdan şüpheleniyorum. Değişkenin kendisini genişletin ve eminim milisaniye bileşeni korunur. (Bu değil durum buysa, daha doğrusu sen gösterdiğin sadece pasajı daha sorunu gösteren bir kısa ama tam bir program sağlayın.)

0

Hayır, değil ve böyle değil Hata Ayıklama Penceresi milisaniye göstermiyor, hepsi bu.

Yeni bir VS2010 çözümü açtı ve söylediklerinizi çoğaltamaz. Milisaniye kısmına bakıldığında, değer 2'dir!

1

Sadece denedim ve milisaniye aldım. Bunu nasıl doğrulıyorsun?

ben hata ayıklama modunda koştum ve sizin context._startFrom.Millisecond o 2.

Eğer ToString() çıkışına güveniyorsunuz değerini sahiptir teftiş? Bu varsayılan olarak milisaniye göstermez.