我有一些像这样定义的变量:
DateTime? tempDateTime;
我也有这样的查询:
var recordWithMinDatetime =
locatedContracts.Where(t => t.OriginalDate.HasValue)
.OrderBy(t => t.OriginalDate.Value)
.FirstOrDefault();
if (recordWithMinDatetime != null)
tempDateTime = recordWithMinDatetime.OriginalDate.Value;
但是当我将鼠标悬停在最后一个作业上时,IDE
表示"可能的InvalidOperationException"
我也安装了ReSharper
,所以不确定它是来自R#还是VS IDE,但我仍然应该关注我的想法,但我不明白我做错了什么或者它提供了这个暗示的非安全代码?
答案 0 :(得分:4)
这可能是R#错误。我会忽略它。您已通过检查LINQ查询中的OriginalDate.Value
确保HasValue
不会抛出异常。
R#试图提供帮助,可能需要这样的检查:
if (recordWithMinDatetime != null && recordWithMinDatetime.OriginalDate.HasValue)
tempDateTime = recordWithMinDatetime.OriginalDate.Value;
但在你的情况下,这项检查是多余的。