1

Microsoft Code Analysis のCA1062ルールは、参照型の引数が で渡されないことを確認しますnull

なぜこれは公的にアクセス可能なメソッドのみをチェックするのですか? internal メソッドと private メソッドもチェックするべきではありませんか? 内部メソッドに対して null 引数が渡されないことをどのように保証できますか?

Roslyn September 2012 CTPでは、Reflector/ILSpy でinternal、さまざまな構文ノードのコンストラクター (SyntaxListクラスを参照) が null 引数をチェックしないのに対し、public構文ノードのファクトリ メソッドはnull 引数をチェックすることに気付いたので、質問しています。 . SyntaxListこの場合、マイクロソフトは、コンストラクターの内部使用が null を渡さないことをどのように保証しますか?

4

1 に答える 1

1

この場合、Microsoft は、SyntaxList コンストラクターの内部使用が null を渡さないことをどのように保証しますか?

おそらく、彼らは自分のコードに自信を持っていることを意味するテストを持っているからです。すべての入力を検証し、自分のコードが正しいと確信できる場合は、内部API への呼び出しに有効な入力があると確信できます。

もちろん、実装にバグがあり、内部メソッドへの無効な入力のパススルーを生成または許可する可能性があります。内部呼び出しにさらに検証を加えたい場合は、それで問題ありません。しかし、検証が最も重要なのはパブリック API レベルです。

于 2013-08-20T16:56:14.920 に答える