-2

为一个大型项目打开代码分析会显示大量 CA1062 衰减,这绝对是 IMO 正确的。

我想自动处理这些而不必遍历每一个,无论如何通过对所有方法参数使用断言或类似的东西来在整个代码中自动执行此操作:

if (input == null)
{
    throw new ArgumentNullException("input");
}
4

1 回答 1

1

是的,有很多方法可以自动添加空检查。除了 Bryan Ross 已经提到的 AOP 方法之外,您还可以创建一个工具,根据代码分析报告文件中发现的违规情况修改源代码。这会更细化(即:不在它们可能实际上不属于的地方强制进行空验证),但是您需要投入一些精力来构建工具来做到这一点。

也就是说,大量缺失的空检查通常很好地表明代码库中缺少各种参数验证。如果您想尝试解决所有这些问题,则需要手动操作,并且自动化空值检查可能会隐藏您应该关注的区域。

就个人而言,我倾向于选择更手动的清理,使用 VS 片段来促进更常见的验证(例如:非空、非空、范围内、允许列表中的枚举)。http://msmvps.com/blogs/calinoiu/archive/2007/04/22/fxcop-and-the-big-bad-backlog.aspx中描述的“TODO”抑制方法可能会有用,如果你想启用在您的清理工作结束(甚至开始)之前的 CA1062 规则。

于 2013-03-15T12:20:53.543 回答