1

Microsoft 代码分析的CA1062规则检查引用类型参数是否未使用null.

为什么只检查可公开访问的方法?不应该检查内部和私有方法吗?如何保证内部方法不会传递空参数?

我之所以问,是因为我注意到 Reflector/ILSpy 在Roslyn September 2012 CTP中,各种语法节点的internal构造函数(参见SyntaxList类)不检查空参数,而public语法节点的工厂方法确实检查空参数. 在这种情况下,微软如何保证SyntaxList构造函数的内部使用不传递 null?

4

1 回答 1

1

在这种情况下,Microsoft 如何保证 SyntaxList 构造函数的内部使用不会传递 null?

大概是因为他们有测试,这意味着他们对自己的代码充满信心。如果您验证所有输入,并且您确信自己的代码是正确的,那么您可以确信您对内部API 的调用具有有效输入。

当然,实现中可能存在错误,并且它会生成或允许将无效输入传递给某些内部方法。如果您想对内部调用进行更多验证,那很好。但在公共 API 级别,验证是最重要的。

于 2013-08-20T16:56:14.920 回答