我有一个对象有两个成员(_starttime和_stoptime),类型为DateTime。
当我在调试器中调用以下方法时,一切都按预期工作。 _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是对象,Properties只返回内部成员..
就像我说的那样,如果我在Visual Studio中,它会按预期工作。我怀疑正在进行一些我不知道的优化。
答案 0 :(得分:2)
添加一些Trace.Assert
语句来断言您认为真实的内容。 E.g:
Trace.Assert(_waittime > (TimeSpan)0);
Trace.Assert(_stoptime == _starttime + _waittime);
可能一分钱就会下降,你会发现代码中的错误,其他任何人都无法从你发布的小片段中找到。