我有一种验证RegEx的方法:
private string _value;
private void ValidateFormat(RegEx pattern)
{
if (!pattern.IsMatch(_value)
throw new Exception("...");
}
现在ReSharper将pattern
参数标记为“参数'模式'仅用于前置条件检查”。
在互联网上搜索我找到了使用ContractAnnotationAttribute的解决方案(参见here和here)。
但我仍然无法让它适用于这个具体案例 谢谢你的帮助!
答案 0 :(得分:1)
我认为你不会在这里得到任何帮助。 ContractAnnotation
属性可用于将方法标记为“断言”方法,这意味着该方法的重点是断言某些内容并在其失败时抛出。这有助于分析,例如删除前置条件检查,但也告诉调用传递null的代码会产生死代码等。
不幸的是,您在这里检查的前提条件很复杂,无法在ContractAnnotation
中建模。我的建议是忽略ReSharper的警告,无论是什么都不做,或者告诉ReSharper禁用该段代码的警告(alt + enter,抑制注释)