2009-11-25 4 views

Répondre

38

Sans regarder ce que vous avez, je ne suis pas vraiment sûr de ce champ édition que vous faites référence. Cependant, vous pouvez essayer d'utiliser la fenêtre immédiate et DateTime.Parse ou new DateTime() à la place.

+1

Par exemple dans la fenêtre de la montre; un DateTime s'affichera comme {03/12/2009 00:00:00}, mais si je change, par exemple, la date à 04 au lieu de 03, je reçois une erreur de VS: terme d'expression invalide '{' – Rabbit

+2

Merci (aussi vous, Astander), c'est ce dont j'avais besoin. Bien que je pense que ça craint :-) Le débogueur devrait supporter cela. – Rabbit

27

Vous pouvez modifier la date dans la fenêtre Exécution.

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

Si la date n'est pas en lecture seule ... mais il demande de changer la valeur d'un DateTime ... votre solution est de changer la référence. La réponse devrait être - vous ne pouvez pas, parce que c'est immuable, n'est-ce pas? – tanascius

+1

La date est immuable, mais cela crée un nouvel objet de date que vous pouvez affecter à la variable que vous souhaitez modifier. – kristianp

7

Vous pouvez taper des choses comme cela dans la fenêtre immédiate, la fenêtre Watch, ou la fenêtre Espion et ils seront évalués:

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

Si vous voulez dire débogueur Visual Studio essayer comme ça :
- définir le point d'arrêt
- ouvrir votre variable DateTime dans Espion par exemple (clic droit)
- dans la case de texte expression entrer une nouvelle valeur, c'est par exemple si votre nom de variable est « dt »:
dt = dt.AddDays (3)
- appuyez sur Entrée et poursuivre l'exécution de projet

0

Le "dt =" partie n'est pas strictement nécessaire. Il suffit de taper "dt.AddDays (3)" ou "new DateTime (...)" ou DateTime.Parse (""), etc, et le débogueur essayera d'assigner la valeur que l'expression que vous tapez à la variable sous surveillance; il arrive juste que parce que C# a des expressions d'affectation (par exemple y = (x = 1); // définit y = 1) que l'affectation de l'expression au nom de la variable fonctionne. :)

+0

Les signatures sont considérées comme de mauvaises formes. S'il vous plaît lire la FAQ pour plus de détails. – IronMan84

14

Nous pouvons changer une valeur DateTime directement dans la fenêtre de surveillance. L'astuce est simple: nous devons toujours utiliser une "nouvelle méthode DateTime()", en fournissant les paramètres appropriés. La fenêtre de surveillance ne vous permet pas de taper une nouvelle valeur directement, donc des choses comme "2010-07-13 9:15" ou même {13/07/2010 09:00:00} ne fonctionnent pas .

+3

Vous pouvez faire cela en passant la souris directement sur la variable sans avoir à utiliser la fenêtre de surveillance. Cela fonctionne dans Visual Studio 2012. Je ne connais pas les versions précédentes. –

+0

Merci, en utilisant le nouveau DateTime (...) fait l'affaire! C'était un membre de classe, et "token.expiry = new Datetime (...)" dans la fenêtre immédiate a échoué avec "la référence d'objet non définie à une instance d'un objet". –

0

Vous pouvez le faire si vous définissez votre DateTime entre parenthèses.

(new DateTime(2017, 09, 27)) 
Questions connexes