ReSharper的建议我更改此代码:为什么这段代码被认为是“可能的”System.InvalidOperationException'“?
if (getBeginDate)
{
return (DateTime)RptParamsFromDate;
}
...这样的:
if (getBeginDate)
{
if (RptParamsFromDate != null) return (DateTime)RptParamsFromDate;
}
...因为, “可能 'System.InvalidOperationException'” 但是当我接受了建议它不编译,说:“不是所有代码路径都返回一个值”
“if”块有一个下面的“else”:
else
{
int daysToAddToToDate = DateTime.DaysInMonth(RptParamsToDate.Value.Year, RptParamsToDate.Value.Month) - 1;
RptParamsToDate = RptParamsToDate.Value.AddDays(daysToAddToToDate);
return (DateTime)RptParamsToDate;
}
...所以我不知道为什么它没有看到“其他”作为确保返回值。
无论你'if'块需要一个'else'块,或者需要有一个返回外部给他们对于所有你的代码路径来说都返回一个值,如果'getBeginDate'为true并且'RptParamsFromDate'为null,那么你现在没有结果。 –
因此,您的问题是为什么该代码可能导致InvalidOperationException,或者为什么在Resharper“修复”它后出现构建错误? –
您正在收到“可能无效的操作异常”警告,因为将'null'投射到'DateTime'是不安全的。 –