这句话是否有可能返回真实
DateTime.Now == DateTime.Now
一个非常快的机器可以为这个语句返回true,我试过几台机器并且它总是假的吗?
答案 0 :(得分:19)
是
此属性的分辨率取决于系统计时器,即 在Windows系统上大约15毫秒。结果,重复 在短时间间隔内调用Now属性,例如在循环中, 可能会返回相同的值。
来源:https://msdn.microsoft.com/en-us/library/system.datetime.now(v=vs.110).aspx
答案 1 :(得分:8)
我刚刚在LINQPad中运行了这个脚本:
Enumerable.Range(1, 1000).Select(i => DateTime.Now == DateTime.Now).ToList()
在第一个元素之后,所有其他元素都是真的。我猜测在DateTime.Now
的前几次调用中涉及到一些延迟,导致检查在第一次在给定应用程序中运行时经常返回false。
但是,是的,那个表达式可以(并且经常会)返回true。