コード コントラクトを使用して、次のように、プロパティが 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」をプロジェクトのビルド設定 (「条件付きコンパイル シンボル」テキスト ボックス) に追加する必要があります。