4

コード コントラクトを使用して、次のように、プロパティが null 以外、空でない文字列のシーケンスを返すことを宣言しています。

public IEnumerable<string> Filenames
{
    get
    {
        Contract.Ensures(Contract.Result<IEnumerable<string>>() != null);

        // Next line gives Resharper Warning
        // "Possible null assignment to entity marked with 'not null' attribute":

        Contract.Ensures(Contract.Result<IEnumerable<string>>().Any());

        return new []{"TEST"}; // Dummy data for demo purposes.
    }
}

上記のコード コメントで説明されているように、Resharper から警告が表示されます。

これは質問 here:に似ていますが、その質問への回答で修正を適用しようとしましたが、この特定の問題は修正されません。

これを修正する方法を知っている人はいますか (Resharper コメントを使用して警告を抑制する以外に)?

Resharper 7.1.2 C# エディション、ビルド 7.1.2000.1478 を使用しています

(いくつかのマシンで確認しましたが、すべてのマシンで発生します。R#のバニラインストール-上記でリンクした回答から修正を適用しようとしている以外は、XMLファイルを変更していません。)

さらに詳しい情報:

私はVisual Studio 2012で更新2、.Net 4.0および.Net 4.5でこれを試しています。

また、条件付きコンパイル シンボル「CONTRACTS_FULL」をプロジェクトのビルド設定 (「条件付きコンパイル シンボル」テキスト ボックス) に追加する必要があります。

4

1 に答える 1