、私がnull引数をチェックするための4つの方法を考えることができます。前提条件をテストするためのさまざまな方法の長所と短所を教えてください。私の頭の上オフ
Debug.Assert(context != null);
Contract.Assert(context != null);
Contract.Requires(context != null);
if (context == null) throw new ArgumentNullException("context");
私は私が最後の方法を常に使用しましたが、私はちょうどContract.Requires
を使用したコードスニペットを見て、どの慣れていない。 各メソッドの長所と短所は何ですか?他の方法はありますか? ReSharperの/ワット VS2010で
、
Contract.Assert
は式が常に真であることを私に警告し(それは知っているどのように、私は非常にわからない...のHttpContextがnullにすることはできませんか? )、Contract.Requires
はフェードアウトし、それは私がすべてのcontext != null
に最後の方法を変更した場合、コンパイラは(私があるため、元の理由により、それはnullになることはありませんと仮定)メソッドを呼び出し、そして- ません私に語っますコードfolloウィングが消えて、コードが発見的に到達できないことがわかります。
だから、最後の3つの方法は、VS静的チェッカーに組み込まれている何らかのインテリジェンスを持っているようで、Debug.Assert
はちょうどダムです。
質問は不明です。あなたは実際にそれらをすべて一度に使用しようとしていますか? –
@Matthew:どうしたらいいのか分かりません...いいえ、私はそれらを一度に使うつもりはありません。私はヌルを確認できるさまざまな方法を説明するためにコードスニペットを作成しました。 – mpen
それは私が残りの質問から考えたものですが、あなたが使った構文表現は奇妙でした。 –