ReSharper代码检查添加

时间:2013-04-26 15:04:34

标签: c# resharper static-analysis

是否可以扩展resharper代码检查/注释以处理静态正确的案例?

例如,我知道实用功能满足某些条件,例如:

    static public bool IsValid(double? d)
    {
        return d != null && IsValid(d.Value);
    }
    static public bool IsValid(double d)
    {
        return !Double.IsNaN(d) && !Double.IsInfinity(d);
    }

所以这确保了一个可以为空的值,并且我喜欢"可能的System.InvalidOperationException"检查不要点火:

    if (Utils.IsValid(nullableValue))
    {
        DoSomethingWith(nullableValue.Value);
    }

当然我可以抑制检查/等,但是是否可以扩展静态类型以指示这实际上确保该值不可为空?

(我认为一个相关但过于笼统的问题是我应该使用另一个静态打字检查而不是可以处理它的resharper,但我不会因为担心过于宽泛而烦恼!)

1 个答案:

答案 0 :(得分:4)

根据Daniel的建议,resharper支持大量annotations来协助检查。

具体来说,通过documentation我们在这里寻找的是:

    [ContractAnnotation("d:null => false")]
    static public bool IsValid(double? d)
    {
        return d != null && IsValid(d.Value);
    }

完美的技巧,静态检查工作得很漂亮。

爱那个重塑者!