为什么Microsoft代码分析只检查公共可访问方法的参数是否为null
本文关键字:方法 访问 参数 是否 null 代码 Microsoft 检查 为什么 | 更新日期: 2023-09-27 18:28:25
Microsoft代码分析的CA1062规则检查引用类型参数是否与null
一起传递。
为什么只检查可公开访问的方法?是否也应该检查内部和私有方法?如何保证内部方法不会传递null参数?
我之所以这么问,是因为我在Reflector/ILSpy中注意到,在Roslyn September 2012 CTP中,各种语法节点的internal
构造函数(请参阅SyntaxList
类)不检查null参数,而语法节点的public
工厂方法则检查null参数。在这种情况下,Microsoft如何保证SyntaxList
构造函数的内部用法不会传递null?
在这种情况下,Microsoft如何保证SyntaxList构造函数的内部用法不会传递null?
大概是因为他们有测试,这意味着他们对自己的代码充满信心。如果您验证了所有输入,并且确信自己的代码是正确的,那么您就可以确信对内部API的调用具有有效的输入。
当然,实现中可能存在错误,它会生成或允许将无效输入传递给某个内部方法。如果你想对内部调用进行更多的验证,那没关系。但在公共API级别,验证是最重要的。