为什么Microsoft Code Analysis检查参数是否只能是可公开访问的方法?

时间:2013-08-20 16:52:37

标签: c# null code-analysis roslyn

Microsoft Code Analysis的CA1062规则检查引用类型参数未与null一起传递。

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

我问,因为我注意到Reflector / ILSpy在Roslyn September 2012 CTP中,各种语法节点的internal构造函数(请参阅SyntaxList类)不检查空参数,而语法节点的public工厂方法会检查空参数。在这种情况下,Microsoft如何保证SyntaxList构造函数的内部用法不传递null?

1 个答案:

答案 0 :(得分:1)

  

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

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

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