4

.NET 4.0 にコントラクトが導入されて以来、Microsoft がこれを BCL のようにすべてのクラスに広めたのではないかと考えています。

そうでない場合、なぜですか?この種の機能は、標準ライブラリでデフォルトでサポートされている場合にのみ意味がありますよね?

4

2 に答える 2

2

BCL のすべてではありません。

Code Contracts はまだ IDE と言語に完全には組み込まれていないことを考慮してください。個別のダウンロードです。開発者の浸透度が高まり、IDE との統合が強化され、BCL の完全な注釈が追加されれば、すぐに使用できるようになることは間違いありません。

于 2011-03-07T18:32:15.177 に答える
2

No Code Contracts は、すべての BCL に追加されていません。最も一般的なクラスの多くには注釈が追加されていますが、BCL 全体には追加されていません。

ここでの主な理由は時間です。BCL は巨大であり、すべての BCL に正しいコントラクトを追加することは大規模な作業です。その結果、現時点では、.Net ユーザー ベースのごく一部にのみメリットがあります。コントラクトの人気が高まると、BCL 内での使用も同様に増加すると確信しています (はい、一方を行わないと、もう一方の可能性が低くなることはわかっています)。

この問題は、ユーザーがカスタム コントラクト アセンブリを宣言する機能によって軽減されます。これにより、見逃していたタイプにポスト アノテーションを付け、コントラクトの観点からコード ベースがクリーンになるポイントに到達できます。

于 2011-03-07T18:48:13.537 に答える