为什么在将DateTime传递给采用Nullable DateTime的方法时会丢失DateTime的毫秒数?

pen*_*ake 5 .net c# datetime nullable

我有一个类似于这样的构造函数方法:

public class Foo
{
 public Foo (DateTime? startFrom)
        {
            _startFrom = startFrom;
        }
}
Run Code Online (Sandbox Code Playgroud)

我正在调用这个构造函数方法:

   var context = new Foo(new DateTime(2012, 7, 15, 11, 2, 10, 2)); // 2 miliseconds
Run Code Online (Sandbox Code Playgroud)

但是当我调试它时,我发现当传递给默认构造函数(Nullable DateTime参数)时,002毫秒被设置为000.

当我将它作为参数传递给采用Nullable DateTime的方法时,我丢失了DateTime的毫秒是否正常?

Jon*_*eet 4

不,这不正常 - 我强烈怀疑这是诊断问题。

当您调试代码时,我怀疑您正在使用一个监视窗口,该窗口恰好没有在其字符串表示形式中显示毫秒。展开变量本身,我确信您会看到毫秒部分被保留。

(如果情况并非如此,请提供一个简短但完整的程序来演示问题,而不仅仅是您显示的代码片段。)