ReSharper 代码检查添加

Gen*_*ene 5 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);
    }
Run Code Online (Sandbox Code Playgroud)

因此,这确保了可空值具有值,并且我希望“Possible System.InvalidOperationException”检查不会因以下情况而触发:

    if (Utils.IsValid(nullableValue))
    {
        DoSomethingWith(nullableValue.Value);
    }
Run Code Online (Sandbox Code Playgroud)

当然我可以取消检查/等,但是是否可以扩展静态类型以表明这实际上可以确保该值不可为空?

(我想一个相关但过于笼统的问题是我应该使用另一个静态类型检查而不是可能处理它的 resharper,但我不会因为担心过于宽泛而要求!)

Gen*_*ene 5

根据 Daniel 的建议,resharper 支持大量注释以协助检查。

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

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

这完美地完成了这个技巧,并且静态检查工作得很好。

喜欢那个修整器!