2009-11-25 88 views

回答

38

不看你有什么,我真的不知道你指的是什么编辑字段。但是,您可以尝试使用立即窗口,而不是使用DateTime.Parsenew DateTime()

+1

例如在观察窗口中; DateTime将显示为{03/12/2009 00:00:00},但如果我更改了例如日期为04而不是03,我从VS中得到一个错误:无效的表达式'{' – Rabbit 2009-11-25 09:50:55

+2

谢谢(也是你,astander),这就是我所需要的。尽管我认为它很糟糕:-)调试器应该支持这一点。 – Rabbit 2009-11-25 09:56:21

27

您可以在立即窗口中更改日期。

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

如果日期不是只读的...但他要求更改DateTime的值...您的解决方案是更改引用。答案应该是 - 你不能,因为它是不变的,不是吗? – tanascius 2009-11-25 09:52:48

+1

日期是不可变的,但是这会创建一个新的日期对象,您可以将其分配给要更改的变量。 – kristianp 2013-04-12 01:50:51

7

您可以立即窗口,监视窗口,或快速监视窗口中键入像这样的事情,他们将得到评估:

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

如果你的意思是在Visual Studio调试器尝试这样:
- 设置断点
- 在快速监视打开您的DateTime变量例如(右键)
- 在表达式文本框中输入新的价值,这是举例来说,如果你的变量名是“DT”:
DT = dt.AddDays(3)
- 按下输入键和继续执行项目

0

的 “DT =” 部分不是严格必要的。只需输入“dt.AddDays(3)”或“new DateTime(...)”或DateTime.Parse(“”)等,调试器将尝试将您输入的表达式的任何值结果赋值给变量在监视下;恰恰恰巧是因为C#有赋值表达式(例如y =(x = 1); //设置y = 1),它将表达式赋值给变量名称works。 :)

+0

签名被认为是不好的形式。详情请阅读常见问题解答。 – IronMan84 2012-12-19 19:33:34

14

我们可以直接在Watch窗口中更改DateTime值。诀窍很简单:我们总是必须使用“新的DateTime()”方法,提供适当的参数。

观察窗口不允许您直接键入新的值,因此诸如“2010-07-13 9:15”或甚至{13/07/2010 09:00:00}不起作用。

+3

您可以将鼠标悬停在变量上,而无需使用观察窗口。它适用于Visual Studio 2012.我不知道以前的版本。 – 2013-06-05 12:00:50

+0

谢谢你,使用新的DateTime(...)做到了!这是类的成员,并且在立即窗口中的“token.expiry = new Datetime(...)”失败,并且“对象引用未设置为对象的实例”。 – 2017-07-26 19:16:31

0

如果在括号之间定义DateTime,可以这样做。

(new DateTime(2017, 09, 27))