![](/img/trans.png)
[英]Task Parallel Library throws NullReferenceException with IEnumerable
[英]Resharper false possible nullReferenceException warning with task parallel library
考慮這個例子
var task =Task.Factory.StartNew(()=>Console.WriteLine("test"));
task.ContinueWith(antecendent =>
{
ExceptionProcessor.HandleError(task.Exception.Flatten());
}, TaskContinuationOptions.OnlyOnFaulted);
在此示例中,resharper預測task.Exception.Flatten()中可能存在空指針異常,因為它假定task.Exception可能為null。
但是對於所有實際場景,它不會為null,因為參數TaskContinuationOptions.OnlyOnFaulted確保僅在發生異常時才調用該方法。
那么我如何告訴Resharper忽略所有類似的警告?
我想你有幾個選擇:
null
檢查。 我不喜歡#4,你會讓你的代碼不那么可讀,這樣ReSharper很高興。 我也不喜歡#3,這可能會大量污染你的代碼。 #2更好,但我認為#1是最好的選擇:“Posible NullReferenceException”總是會出現誤報,所以你應該用它作為指導:“小心點,有些東西可能是錯的”,而不是嚴格的“你必須解決這個問題。“
Resharper支持團隊已接受此錯誤,可在此處跟蹤http://youtrack.jetbrains.com/issue/RSRP-316492
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.