Your question is not quite clear to me, but if we have
DateTime? ExpireDateTime; // could be a variable or a property
it's OK to say just
if (ExpireDateTime < DateTime.UtcNow)
{
...
}
This will be OK if ExpireDateTime
is null
(HasValue
is false). Some inexperienced developers will struggle to understand lifted operators, so to make it more clear, you could write
if (ExpireDateTime < (DateTime?)DateTime.UtcNow)
{
...
}
It's the same, but easier to read and understand.
Never write .Value
if the nullable might be null, of course. You will get an InvalidOperationException
"Nullable object must have a value" if you do so.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…