考慮這個例子ReSharper的錯誤可能的NullReferenceException的警告與任務並行庫
var task =Task.Factory.StartNew(()=>Console.WriteLine("test"));
task.ContinueWith(antecendent =>
{
ExceptionProcessor.HandleError(task.Exception.Flatten());
}, TaskContinuationOptions.OnlyOnFaulted);
在這個例子中ReSharper的預測,存在task.Exception.Flatten()可能的空指針異常,因爲它假定task.Exception可能爲空。
但是對於所有的實際情況,它不會爲空,因爲TaskContinuationOptions.OnlyOnFaulted參數確保只有在發生異常時纔會調用該方法。
那麼,我該如何讓Resharper忽略所有類似的警告?
我同意您的所有意見,無視警告似乎是最好的情況下,截至目前。但問題是,你不能區分真正的情況下,空檢查丟失和誤報 –
是的,我知道,但我不知道任何更好的解決方案。 – svick