1

我的方法如下。

public static void Debug(this Logger logger, string message)
{
    logger.Debug(() => message);
}

当我使用 Debug config 运行代码分析时,我没有收到任何警告。

当我使用 Release 配置运行代码分析时,我得到:

CA1801 查看未使用的参数“CommonExtensions.Debug(this Logger, string)”的参数“message”从未使用过。删除参数或在方法体中使用它。FakeItEasy CommonExtensions.cs 101

CA1801 查看未使用的参数“CommonExtensions.Debug(this Logger, string)”的参数“logger”从未使用过。删除参数或在方法体中使用它。FakeItEasy CommonExtensions.cs 101

这显然是错误的。我在方法体中使用了这两个参数。如果我删除任何一个参数,则代码不会编译。

有没有其他人经历过类似的事情?我是否发现了代码分析中的错误?

(我在两种配置下都使用相同的规则集。)


更新

Logger.Debug()签名如下:

[Conditional("DEBUG")]
public abstract void Debug(Func<string> message);
4

2 回答 2

1

根据 Q 更新,设置Logger.Debug()Conditional属性,这就是原因。

于 2013-04-20T10:36:55.420 回答
1

"CODE_ANALYSIS"您可以通过添加条件属性来修复它:

[Conditional("DEBUG")]
[Conditional("CODE_ANALYSIS")]
public abstract void Debug(Func<string> message);

(我遇到了同样的问题并找到了解决方案。)

于 2015-08-11T14:37:05.597 回答