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'是不安全的。 –