DateTime.Now在一个语句中

Jar*_*man 4 .net c# datetime

在下面thisIsAlwaysTrue应该永远是真的.

DateTime d = DateTime.Now;
bool thisIsAlwaysTrue = d == d;
Run Code Online (Sandbox Code Playgroud)

但DateTime.Now是否以这样的方式工作,即theThisAlwaysTrue保证是真的?或者可以在引用Now属性之间改变时钟?

bool isThisAlwaysTrue = DateTime.Now == DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

500*_*ror 10

时钟肯定会在两次背靠背调用DateTime.Now之间发生变化.


Joe*_*orn 8

DateTime.Now属性是volatile,这意味着它肯定可以在使用之间更改.但是你赋给它的变量不是易变的.

所以这应该始终将结果设置为true:

DateTime d = DateTime.Now;
bool result = d == d;
Run Code Online (Sandbox Code Playgroud)

它将DateTime.Now返回的值赋给d变量,而不是属性本身.因此,d将始终等于该代码中的d.

但这并不总是将结果设置为true:

bool result = DateTime.Now == DateTime.Now;
Run Code Online (Sandbox Code Playgroud)