2009-11-25 14 views

risposta

38

Senza guardare quello che hai, io non sono davvero sicuro di quello campo di modifica ti riferisci. Tuttavia, puoi provare a utilizzare la finestra immediata e DateTime.Parse o new DateTime().

+1

Per esempio nella finestra di controllo; un DateTime verrà mostrato come {03/12/2009 00:00:00}, ma se cambio ad es. la data a 04 invece di 03, ottengo un errore da VS: termine di espressione non valido '{' – Rabbit

+2

Grazie (anche a te, astander), questo è quello che mi serviva. Anche se penso che faccia schifo :-) Il debugger dovrebbe supportarlo. – Rabbit

27

È possibile modificare la data nella finestra immediata.

date = new DateTime(2009, 10, 05) 
{05/Oct/2009 12:00:00 AM} 
    Date: {05/Oct/2009 12:00:00 AM} 
    Day: 5 
    DayOfWeek: Monday 
    DayOfYear: 278 
    Hour: 0 
    Kind: Unspecified 
    Millisecond: 0 
    Minute: 0 
    Month: 10 
    Second: 0 
    Ticks: 633902976000000000 
    TimeOfDay: {00:00:00} 
    Year: 2009 
+0

Se la data non è in sola lettura ... ma sta chiedendo di cambiare il valore di un DateTime ... la soluzione è di cambiare il riferimento. La risposta dovrebbe essere - non puoi, perché è immutabile, non è vero? – tanascius

+1

La data è immutabile, ma crea un nuovo oggetto data che è possibile assegnare alla variabile che si desidera modificare. – kristianp

7

È possibile digitare le cose come questo per la finestra immediata, la finestra di controllo, o la finestra Controllo immediato e avranno valutato:

myDate = DateTime.Today.AddDays(2) 
myDate = new DateTime(2009, 12, 25) 
1

Se vuoi dire il debugger di Visual Studio provare come questo :
- impostare il punto di interruzione
- aprire la variabile DateTime in Controllo immediato per esempio (tasto destro del mouse)
- nella casella di testo Espressione immettere nuovo valore, questo è l'esempio se il nome della variabile è "dt":
dt = dt.AddDays (3)
- enter e continuare l'esecuzione progetto

0

Il "dt =" porzione non è strettamente necessario. Basta digitare "dt.AddDays (3)" o "new DateTime (...)" o DateTime.Parse (""), ecc. E il debugger proverà ad assegnare qualsiasi valore risultante dall'espressione che si digita alla variabile sotto sorveglianza; succede solo perché C# ha espressioni di assegnazione (ad esempio y = (x = 1); // set y = 1) che assegna l'espressione al nome della variabile funziona. :)

+0

Le firme sono considerate di cattiva forma. Si prega di leggere le FAQ per i dettagli. – IronMan84

14

Possiamo modificare un valore di DateTime direttamente nella finestra di controllo. Il trucco è semplice: dobbiamo sempre usare un "nuovo metodo DateTime()" che fornisce i parametri appropriati.

La finestra di controllo non consente di digitare direttamente un nuovo valore, quindi cose come "2010-07-13 9:15" o anche {13/07/2010 09:00:00} non funzionano .

+3

Puoi farlo passando il mouse direttamente sopra la variabile senza dover usare la finestra di controllo. Funziona in Visual Studio 2012. Non conosco le versioni precedenti. –

+0

Grazie, usando il nuovo DateTime (...) ha fatto il trucco! Questo era un membro della classe e "token.expiry = new Datetime (...)" nella finestra immediata non è riuscito con "riferimento oggetto non impostato su un'istanza di un oggetto". –

0

È possibile farlo se si definisce il DateTime tra parentesi.

(new DateTime(2017, 09, 27)) 
Problemi correlati