3

私は最近、DbC と、null 非許容オブジェクトをサポートしているように見える Spec# を見てきました。残念ながら仕様番号は放棄されたようです。

  1. Spec# には多くの優れた言語機能が組み込まれているように見えたのに、なぜそれが放棄されたのですか?
  2. デフォルトですべてのオブジェクトを null 非許容にすることに問題があるので、int?, string? と記述する必要がありますか? さらにMailMessage?本当にnull可能なオブジェクトが必要な場合は?
  3. ここで、クラス プロパティを null 許容または非 null 許容としてチェックできる SQL の類似性を確認できます。SQL テーブルの列でできるように、プロパティに制約を課すことさえできますか?

このような機能を言語に組み込むことに問題があるとは思いません。誰でもこれについて教えてもらえますか?

4

1 に答える 1

7

新しいコントラクト フレームワークが .NET 4.0 の一部になるのを見たことがありますか?

言語機能ではなくライブラリにする利点は、言語チームの作業なしで、すべての言語ですぐに利用できるようになることです。もちろんデメリットもありますが…

リンク:

そうは言っても、次のように書けるようになりたいと思います。

public Stream! Foo(string! x)

同様に、Foo が null 参照を受け取ってはならず、null 参照を返してはならないことも示しています。そのタイプのコントラクト用に余分な構文があると便利だと思います

于 2009-01-28T09:52:37.380 に答える