-3

我有一个对象,它有两个类型为 DateTime 的成员(_starttime 和 _stoptime)。

当我在调试器中调用以下方法时,一切都按预期工作。_stoptime 成为对未来基于等待时间的 TimeSpan 值设置的新 DateTime 对象的引用。

但是,如果我将对象部署到服务器并调用它,那么它将返回对原始 DateTime 对象( _starttime )的引用。

我很困惑。有什么想法吗?

    public void Restart()
    {
        _starttime = DateTime.Now;
        _stoptime = _starttime.Add(_waittime);
    }

添加:

更改值后,我通过以下方式对其进行测试:

            Debug.Assert(  Object.ReferenceEquals(RunInterval.StartTime, RunInterval.StopTime), "StartTime and StopTime are a reference same object");

RunInterval 是对象,属性只返回内部成员..

就像我之前说的,如果我在 Visual Studio 中,它会按预期工作。我怀疑正在进行某种我不知道的优化。

4

1 回答 1

2

添加一些Trace.Assert陈述来断言您认为是真实的。例如:

Trace.Assert(_waittime > (TimeSpan)0);
Trace.Assert(_stoptime == _starttime + _waittime);

一分钱可能会掉下来,您会在代码中找到错误,其他人不会从您发布的小片段中找到。

于 2013-10-21T14:36:38.330 回答