3

この例を考えてみましょう

var task =Task.Factory.StartNew(()=>Console.WriteLine("test"));

task.ContinueWith(antecendent =>
        {
            ExceptionProcessor.HandleError(task.Exception.Flatten());
        }, TaskContinuationOptions.OnlyOnFaulted);

この例では、resharper は task.Exception.Flatten() にヌル ポインター例外が存在する可能性があると予測しています。

ただし、すべての現実的なシナリオでは、パラメーター TaskContinuationOptions.OnlyOnFaulted により、例外が発生した場合にのみメソッドが呼び出されることが保証されるため、null になることはありません。

では、同様の警告をすべて無視するように Resharper に指示するにはどうすればよいでしょうか?

4

2 に答える 2

3

いくつかのオプションがあると思います:

  1. この場合、警告は無視してください。
  2. すべての「Posible NullReferenceException」の重大度を Hint のようなものに下げるか、表示しないことさえあります。
  3. コメントでこの警告のインスタンスを無効にします。
  4. ReSharper が正しいふりをして、nullチェックを追加します。

#4 は好きではありません。ReSharper が満足するように、コードを読みにくくすることになります。また、#3も好きではありません。これは、これらのコメントでコードを汚染する可能性があります。#2 の方が優れていますが、#1 が最適なオプションだと思います。「Posible NullReferenceException」は常に誤検知を伴うため、ガイダンスとして使用する必要があります。「ここで注意してください。何か間違っている可能性があります」。これを修正する必要があります。」

于 2012-06-22T17:52:47.947 に答える
3

Resharper サポート チームはこれをバグとして受け入れており、こちらで追跡できますhttp://youtrack.jetbrains.com/issue/RSRP-316492

于 2012-06-28T03:49:00.180 に答える