Resharper 8:使用 ContractAnnotationAttribute 作为验证方法

Resharper 8: Use ContractAnnotationAttribute for validation method

我有一个验证正则表达式的方法:

private string _value;
private void ValidateFormat(RegEx pattern)
{
  if (!pattern.IsMatch(_value)
    throw new Exception("...");
}

现在 ReSharper 将 pattern 参数标记为 "Parameter 'pattern' is only used for precondition check(s)"。
在互联网上搜索我找到了使用 ContractAnnotationAttribute 的解决方案(参见 here and here)。

但我仍然无法让它适用于这个特定案例。
感谢您的帮助!

我认为你不会在这里得到任何帮助。 ContractAnnotation 属性可用于将方法标记为 "assertion" 方法,这意味着该方法的重点是断言某些内容并在失败时抛出。这可以帮助分析,比如去掉前置条件检查,也可以告诉调用代码传递null会产生死代码等

不幸的是,您在此处检查的先决条件很复杂,无法在 ContractAnnotation 中建模。我的建议是忽略 ReSharper 的警告,要么什么都不做,要么告诉 ReSharper 禁用那段代码的警告(alt+enter,用注释抑制)