2

私は Resharper 5.x を使用してコンパイル時の分析を行っていますが、通常は非常に優れていますが、ロジックにコード コントラクトを適用していないようです。次のようなものがありますが、マークされた行で問題が発生しています。

public void Method(int arg)
{
    Contract.Requires(this.NullableValueType != null);

    this.Method2(
        arg,
        this.NullableValueType.Value, // [1]
        this.ReferenceType);
}

[1] は、「可能性のある 'System.InvalidOperationException'」で強調表示されます。チェックをオフにせずにこのエラーを取り除く方法はありますか?

4

1 に答える 1

0

確かに、Resharper はよりインテリジェントでコントラクトを考慮に入れることができますが、残念ながら現在はそうではありません。

ラインをより明確にすることをお勧めします。それ以外の

this.NullableValueType.Value

あなたが書くことができます

this.NullableValueType ?? <something>

ここで、「何か」はもちろん、決して起こらないので問題ではない何かです (たとえば、new ThatValueType())。

于 2010-09-15T21:58:32.647 に答える