2009-11-25 7 views

Antwort

38

Ohne einen Blick auf das, was Sie haben, ich bin nicht wirklich sicher, was Editfeld Sie sich beziehen. Sie können jedoch versuchen, stattdessen das direkte Fenster und DateTime.Parse oder new DateTime() zu verwenden.

+1

Zum Beispiel im Uhrenfenster; Eine DateTime wird als {03/12/2009 00:00:00} angezeigt, aber wenn ich z. das Datum auf 04 statt auf 03, bekomme ich einen Fehler von VS: Ungültiger Ausdrucksterm '{' – Rabbit

+2

Danke (auch du, astander), das habe ich gebraucht. Obwohl ich finde es nervt :-) Der Debugger sollte das unterstützen. – Rabbit

27

Sie können das Datum im Direktfenster ändern.

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

Wenn das Datum nicht schreibgeschützt ist ... aber er bittet darum, den Wert einer DateTime zu ändern ... ist Ihre Lösung, die Referenz zu ändern. Die Antwort sollte sein - du kannst nicht, weil es unveränderlich ist, nicht wahr? – tanascius

+1

Datum ist unveränderlich, aber dadurch wird ein neues Datumsobjekt erstellt, das Sie der Variablen zuweisen können, die Sie ändern möchten. – kristianp

7

Sie können sich in dem Direkt-Fenster, Dinge wie diese geben, dem Überwachungsfenster oder dem Fenster Schnellüberwachung und sie werden ausgewertet erhalten:

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

Wenn Sie auf Visual Studio-Debugger bedeuten wie diese versuchen, :
- der Haltepunkt
gesetzt - Ihr Datetime-Variable
zum Beispiel aus (Rechtsklick) in Schnellüberwachung öffnen - in neuen Wert Expression Textfeld eingeben, ist dies Beispiel, wenn Ihr Variablenname „dt“ ist:
dt = dt.AddDays (3)
- ENTER drücken und weiterhin Projekt

0

Der "dt =" Abschnitt, der nicht unbedingt erforderlich ist, ausführt. Geben Sie einfach "dt.AddDays (3)" oder "new DateTime (...)" oder DateTime.Parse ("") usw. ein, und der Debugger versucht, den Wert, der sich aus dem von Ihnen eingegebenen Ausdruck ergibt, der Variablen zuzuordnen unter Beobachtung; es passiert einfach, dass, weil C# Zuweisungsausdrücke hat (z. B. y = (x = 1); // setzt y = 1), dass das Zuweisen des Ausdrucks zu dem Variablennamen funktioniert. :)

+0

Signaturen gelten als schlechte Form. Bitte lesen Sie die FAQ für Details. – IronMan84

14

Wir können einen DateTime-Wert direkt im Überwachungsfenster ändern. Der Trick ist einfach: Wir müssen immer eine "neue DateTime()" -Methode verwenden, die die entsprechenden Parameter bereitstellt.

Im Überwachungsfenster können Sie keinen neuen Wert direkt eingeben, so dass Dinge wie "2010-07-13 9:15" oder sogar {13/07/2010 09:00:00} nicht funktionieren .

+3

Sie können dies tun, indem Sie die Maus direkt über die Variable bewegen, ohne das Überwachungsfenster zu verwenden. Es funktioniert in Visual Studio 2012. Ich weiß nichts über vorherige Versionen. –

+0

Vielen Dank, mit neuen DateTime (...) hat den Trick! Dies war ein Member der Klasse und "token.expiry = new Datetime (...)" im unmittelbaren Fenster ist fehlgeschlagen mit "Objektreferenz wurde nicht auf eine Instanz eines Objekts gesetzt". –

0

Sie können es tun, wenn Sie Ihre DateTime zwischen Klammern definieren.

(new DateTime(2017, 09, 27)) 
Verwandte Themen