日期:2014-05-18  浏览次数:20347 次

日期的最大值会不一样吗?
在经过很多句代码后,给没有传入值或为空的参数,设置返回为DateTime.MaxValue;
现在页面里判断返回的这个变量是不是日期最大值,结果发现不是!
表面上看,值都是9999-12-31,但用==或DateTime.Compare都不能确定是否相等,为什么?

------解决方案--------------------
对两个 DateTime 的实例进行比较,并返回一个指示第一个实例是早于、等于还是晚于第二个实例的整数。

==比的是地址
------解决方案--------------------
不太可能...DateTime.MaxValue是常量,值等于9999-12-31 23:59:59.9999999...

要注意它是精确到100毫微秒的...假如你截断了这个值,肯定不相等...你还是检查自己的代码吧
------解决方案--------------------
1楼乱讲...对值类型==比较的是值,即使是引用类型==号也未必是比较引用,还要看它是否被重写过,例如string还是比较值...

DateTime是值类型,==和Equals是相同的...
------解决方案--------------------
探讨
DateTime 结构类型!

------解决方案--------------------
我的变量是315537897599000
--------
这个值表明你的程序中某处将时间精度降低到千分之一秒...是你代码的问题...