Resharper и Code Contracts плохо играют вместе - PullRequest
2 голосов
/ 16 сентября 2010

Я использую 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». Есть ли способ избавиться от этой ошибки, не отключая проверку?

1 Ответ

0 голосов
/ 16 сентября 2010

Хотя по общему признанию Resharper мог бы быть более умным и учитывать контракты, к сожалению, в настоящее время это не так.

Я бы порекомендовал сделать строку более явной.Вместо

this.NullableValueType.Value

вы могли бы написать

this.NullableValueType ?? <something>

, где «что-то», конечно, что-то, что не имеет значения, потому что этого никогда не происходит (например, new ThatValueType()).

...