使用立即窗口分配给可为空的DateTime时,值不正确

时间:2015-10-22 14:17:32

标签: c# visual-studio visual-studio-2015

我有以下代码:

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            var foo = new Foo
            {
                TheDate = DateTime.Now
            };

            Console.Read();    
        }
    }

    class Foo
    {
        public DateTime? TheDate { get; set; }
    }
}

我在第Console.Read();行设置断点并使用Visual Studio 2015中的立即窗口,我观察foo.TheDate的值:

Observing the initial value

现在我使用立即窗口设置foo.TheDate的值为1990年圣诞节(任何日期都足够了,只需使用一个易于记忆的例子):

Assigning a new value

我看到值回显给我,所以一切看起来都很好。但是,当我现在观察该值时,返回的日期完全不同:

Observing the newly set value

这里发生了什么?

修改 除此之外,如果您使用常规DateTime(不可为空),并尝试使用相同的示例代码,则在尝试使用foo.TheDate = new DateTime(2012, 12, 25)进行分配时,立即窗口会出现System.Reflection.TargetParameterCountException和消息"参数计数不匹配"。

0 个答案:

没有答案