5

是否可以扩展 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,但我不会因为害怕过于宽泛而要求!)

4

1 回答 1

5

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

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

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

哪个完美地完成了技巧,并且静态检查效果很好。

喜欢那个磨刀器!

于 2013-04-26T18:32:59.173 回答