2012-06-22 20 views
5

Ho un metodo di costruzione simile a questo:Perché perdo millisecondi di un DateTime quando viene passato a un metodo che accetta Nullable DateTime?

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

E io chiamo questo metodo di costruzione in questo modo:

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

Ma quando il debug di esso, trovo che i 002 millisecondi sono impostati su 000 quando passato al costruttore predefinito che è un parametro DateTime Nullable.

È normale che io perda i millisecondi di un DateTime quando lo passo come parametro a un metodo che accetta Nullable DateTime?

+0

Come stai visualizzando il contenuto di DateTime? Il debugger utilizza DateTime.ToString() che non visualizza i millisecondi. Se espandi l'oggetto nel debugger, vedrai i millisecondi. –

risposta

4

No, non è normale, e ho il forte sospetto che si tratti di un problema di diagnostica.

Quando si esegue il debug del codice, ho il sospetto che si stia utilizzando una finestra di controllo che non visualizza i millisecondi nella sua rappresentazione di stringa. Espandi la variabile stessa e sono sicuro che vedrai il componente dei millisecondi conservato.

(Se questo è non il caso, si prega di fornire un programma breve ma completo che illustra il problema, piuttosto che solo il frammento che avete mostrato.)

0

No, non è e non è il caso, il La finestra di debug non mostra millisecondi, tutto qui.

È stata aperta una nuova soluzione VS2010 e non è possibile riprodurre ciò che si dice. Quando guardi la parte in millisecondo, il valore è 2!

1

Ho appena provato e ottengo i millisecondi. Come stai verificando questo?

ho eseguito in modalità debug e ispezionato il vostro context._startFrom.Millisecond ha il valore di 2.

Stai contando su ToString) uscita (? Questo per default non mostra millisecondi.

Problemi correlati