これは、Visual Studio 2012 を使用した ReSharper 7 です。以下のサンプルでは
// This code works fine and as expected and ReShrper is happy with it
if (!string.IsNullOrWhiteSpace(extension) && extension.Length == 3)
{
// do something
}
// ReSharper highlights "extension" in extension.Length with "Possible 'System.NullReferenceException'"
if (!extension.IsNullOrWhiteSpace() && extension.Length == 3)
{
// do something
}
そして、次の拡張メソッドを作成しました。
public static class StringExtensions
{
public static bool IsNullOrWhiteSpace(this string s)
{
return string.IsNullOrWhiteSpace(s);
}
}
の反映されたコードを調べましたString.IsNullOrWhiteSpace
が、チェックが検証されたことを R# に強調表示する関連するコードや属性はありません。これは R# でハードコーディングされていますか?
Code Contracts を見ましたが、私の場合に役立つかどうかはわかりません。
チェック条件が拡張メソッドによって既に検証されていることを ReSharper に証明するための回避策はありますか?