今日、C# 4.0 コード コントラクトについて読みました。メソッドへのパラメーターが null ではないことを検証するための一般的な方法は次のようです。
Contract.Requires(p != null);
ただし、コード内のすべてのインターフェイス メソッドのすべてのパラメーターに対してこれを行う必要があるのは、非常に不合理に思えます。ほとんどの場合、パラメーターは null ではないことが期待されます。いくつかの特定のパラメーターを null にすることが「許可」されている (Java の「@Nullable」アノテーションと同様に) 定義できる何らかのメカニズムがあり、Contracts フレームワークが残りのパラメーターがそうでないことを自動的に保証することを期待します。ヌル。
この「ボイラープレート チェック」(多くの「コントラクト クラス」と同様に、多くの場合、null 以外のパラメーターを除いて検証する条件がないことが多いため) の時間を大幅に節約できるだけでなく、コントラクト コードもよりクリーンになります。そしてより「論理指向」。
私の質問は、これを行う方法はありますか、そうでない場合、どこにないのか、またはおそらく私のアプローチが間違っているのはなぜですか?