DateTime计算的奇怪问题

ind*_*dra 7 .net c# enums immediate-window visual-studio-2010

我可能一直在努力工作,但有人可以从Immediate窗口向我解释以下内容吗?

(int)DateTime.Now.Date.DayOfWeek = 4

(int)DayOfWeek.Sunday = 0

(int)DateTime.Now.Date.DayOfWeek - (int)DayOfWeek.Sunday = 4

但是
(int)DayOfWeek.Sunday - (int)DateTime.Now.Date.DayOfWeek=无法评估表达式

谢谢阅读.

编辑:

它的立即窗口给了我这个奇怪的结果,而不是常规代码.

屏幕截图:http://ploader.net/files/0c2556df475b3075634d7fd2b0575794.PNG

EDIT2:

社区似乎认为它是VS2010中的一个错误.我想知道@EricLippert或@JonSkeet是否可以花一分钟来确认这一点,或者,如果不是,请提供有关此行为的解释?

Joe*_*eau 5

它看起来特定于常量0和非文字值.以下工作正常:

int zero = 0;
zero - (int)DateTime.Now.Date.DayOfWeek
-4
Run Code Online (Sandbox Code Playgroud)

虽然以下失败:

int four = 4;
0 - four
Could not evaluate expression
Run Code Online (Sandbox Code Playgroud)

更新:我找不到类似的错误报告,所以我创建了一个:https: //connect.microsoft.com/VisualStudio/feedback/details/679501/integer-literal-0-integer-variable-could-not-evaluate -expression的速窗口

更新#2:Microsoft能够重现该问题,并将其解析为"无法修复",这意味着对Visual Studio的下一个版本有希望,但对于VS2010则没有.