有没有可能扩展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);
}因此,这确保了nullable具有值,并且我希望"Possible System.InvalidOperationException“检查不会因为如下内容而触发:
if (Utils.IsValid(nullableValue))
{
DoSomethingWith(nullableValue.Value);
}当然,我可以取消检查/etc,但是否可以扩展静态类型以表明这实际上可以确保该值不可为空?
(我认为一个相关但过于笼统的问题是,我是否应该使用另一个静态类型检查,而不是可能处理它的resharper,但我不会问这个问题,以免过于宽泛!)
发布于 2013-04-27 02:32:59
根据丹尼尔的建议,resharper支持大量的annotations来协助检查。
具体地说,通过documentation,我们在这里寻找的内容类似于:
[ContractAnnotation("d:null => false")]
static public bool IsValid(double? d)
{
return d != null && IsValid(d.Value);
}它完美地完成了这项工作,静态检查工作得也很漂亮。
我爱你的resharper!
https://stackoverflow.com/questions/16239601
复制相似问题