5

我有一个类似的构造方法:

public class Foo
{
 public Foo (DateTime? startFrom)
        {
            _startFrom = startFrom;
        }
}

我这样调用这个构造方法:

   var context = new Foo(new DateTime(2012, 7, 15, 11, 2, 10, 2)); // 2 miliseconds

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

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

4

3 回答 3

4

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

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

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

于 2012-06-22T08:21:51.203 回答
1

我刚试过,我确实得到了毫秒。你如何验证这一点?

我在调试模式下运行它并检查了你的 context._startFrom.Millisecond 它的值为 2。

您是否依赖 ToString() 输出?默认情况下不显示毫秒。

于 2012-06-22T08:24:42.407 回答
0

不,事实并非如此,调试窗口不显示毫秒,仅此而已。

打开一个新的VS2010解决方案,无法重现你所说的。查看毫秒部分时,值为 2 !

于 2012-06-22T08:23:07.657 回答