Resharper和Code Contracts不能很好地融合在一起

时间:2010-09-15 21:38:12

标签: c# resharper code-contracts

我正在使用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 :(得分:0)

虽然承认Resharper可能更聪明并且考虑到合同,但遗憾的是目前它并没有。

我建议让这条线更明确。而不是

this.NullableValueType.Value
你可以写

this.NullableValueType ?? <something>

当然,“某些东西”无关紧要,因为它永远不会发生(例如,new ThatValueType())。