Возможное исключение ReSharper Null, когда значение null уже проверено

Это ReSharper 7 с Visual Studio 2012. Пример ниже

// 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, что условие проверки уже проверено моим методом расширения?

9
задан Frode Evensen 22 August 2018 в 12:41
поделиться