我有一个具有DateTime类型的两个成员(_starttime和_stoptime)的对象。为什么DateTime.Add不会将引用返回给新的DateTime对象?
当我在调试器中调用以下方法时,一切都按预期工作。 _stoptime将成为未来基于TimeSpan Timetime值设置的新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中,它会按预期工作。我怀疑某些优化正在进行,我不知道。
你将不得不证明。 – Will
另外,'DateTime'是一个值类型。这些是直接的价值观,而不是参考。这意味着你断言'Add'什么都不做。 – Jon
我猜想,出于某种原因,'_waittime'的间隔是0s。你将不得不检查原因。 –