为什么 DateTime.Add 不返回对新 DateTime 对象的引用
本文关键字:DateTime 对象 引用 返回 Add 为什么 | 更新日期: 2023-09-27 18:36:26
我有一个对象,它有两个成员(_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中,它可以按预期工作。我怀疑正在进行某种我不知道的优化。
添加一些Trace.Assert
语句来断言你认为正确的内容。 例如:
Trace.Assert(_waittime > (TimeSpan)0);
Trace.Assert(_stoptime == _starttime + _waittime);
可能会一分钱掉下来,你会在你的代码中找到错误,没有其他人会从你发布的小片段中找到。