問題タブ [code-contracts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
12026 参照

.net - .NET Guardクラスライブラリ?

null引数のチェックなどのガードメソッドを提供するライブラリまたはソースコードを探しています。明らかに、これは構築するのはかなり簡単ですが、.NET用の何かがすでにそこにあるかどうか疑問に思っています。基本的なグーグル検索はあまり明らかにしませんでした。

0 投票する
2 に答える
768 参照

code-contracts - 契約ベースのプログラミング

Code Contracts に関して、Spec# が C# 4.0 に移行する可能性がある概念を誰か説明できますか?

  • コード コントラクトとは (コンパイル時のチェック パターンのようです)
  • 私はこれについて興奮する必要がありますか?
  • 実行時チェックをコンパイル時に移動すると仮定して、私は正しいでしょうか?

ありがとう!

0 投票する
2 に答える
520 参照

.net - コード コントラクトを使用して、メソッドが決して null を返さないことを示すにはどうすればよいですか?

メソッドが決して null を返さないことを示すにはどうすればよいですか? 現在、これは私のコードです。

19 行目では、CreateFunction が結果が何もないことを想定していても、Ensures が証明されていないというメッセージが表示されます。

0 投票する
3 に答える
616 参照

.net - Webプロジェクトでコードコントラクトを使用すると、展開にどのように影響しますか?

アプリケーションでコードコントラクトを使用する場合、アセンブリをGACに配置したり、本番サーバーでコードコントラクトインストールパッケージを実行したりするなど、本番サーバーに(コードコントラクトパッケージから)何かをインストールする必要がありますか?

または、ライブラリをbinフォルダに配置するだけで機能しますか?

0 投票する
7 に答える
10192 参照

c# - ReSharper-Microsoft.Contractsを使用するときにヌル割り当てが発生する可能性があります

契約による設計がチェックを必要とするためにnull参照が発生しないことをReSharperに示す方法はありますか?たとえば、次のコードは、Possible 'null' assignment to entity marked with 'NotNull' attribute7行目と8行目のReSharperで警告()を発生させます。

本当に奇妙なのは、Contract.Requires(...)行を削除すると、ReSharperメッセージが消えることです。

アップデート

私はExternalAnnotationsを通じて解決策を見つけました。これは、以下のMikeによっても言及されています。これは、Microsoft.Contractsの関数に対してこれを行う方法の例です。

  • ReSharperディレクトリMicrosoft.Contractsの下にというディレクトリを作成します。ExternalAnnotations
  • 次に、というファイルを作成し、次のMicrosoft.Contracts.xmlように入力します。

  • Visual Studioを再起動すると、メッセージが消えます。
0 投票する
0 に答える
290 参照

.net - Microsoft Contracts: アセンブリの読み込みにより、メタデータのインポートに関する警告が表示されました

Microsoft Code Contractsライブラリの使い方を学ぼうとしていますが、次の単純な機能があります。

これをコンパイルしようとすると、契約の静的コンパイラは次の警告メッセージをスローします。

そしてすぐにあきらめます (そして、それ以上の契約処理を行おうとはしません)。設定するコードを削除するとDefaultToolsVersion、コントラクト検証ツールは正しく機能しますが、コードが正しくなくなるため、これはかなり無意味です。

Googleでこれについての言及が見つかりません...これを修正できる方法はありますか、それとも契約ライブラリの単なるバグですか? (もちろん発売前の状態です)

ありがとう

0 投票する
5 に答える
392 参照

c# - コード コントラクトのイテレータにバグがありますか?

次のコードは前提条件で失敗します。これはコード コントラクトのバグですか?

0 投票する
2 に答える
1270 参照

asp.net - Can Microsoft Code Contracts be used with an ASP.NET Website?

I'm currently using Microsoft Code Contracts in an ASP.NET MVC application without any issues but I can not seem to get it quite running in a basic ASP.NET Web site. I'm not entirely sure it was made to work with this type of project (although it shouldn't matter) so I wanted to bring it up to everyone.

I can compile the contracts just fine but the code skips over them since I'm assuming it hasn't been enabled through the Properties Page like you would do in other project types (ie ASP.NET MVC). I've gone to the property page of the project (which displays a dialog instead of the typical properties page) in my ASP.NET web site but it does not yield the same menu options and as such, doesn't have a section devoted to Code Contracts.

Also, I have Microsoft Code Contracts properly enabled within a class library project that I use to separate my business logic from the web site. The contracts compile fine but when a contract is violated, it throws a rather uninformative "Exception of type 'System.ExecutionEngineException' was thrown" error with no inner exception. My contract specifies a message to display upon violation but it is nowhere within the exception. It simply halts the execution of the process (which I believe is the default functionality for Microsoft Code Contracts).

I can't find anywhere that explicitly states that a particular project type can or can't (or shouldn't) be used with Contracts so I just wanted to see if anyone has had this issue.

Thanks for any help!

0 投票する
2 に答える
362 参照

c# - CodeContracts: this() 呼び出しを使用して Ctor で Require を満たす方法は?

Microsoft の CodeContracts をいじっていて、解決できない問題に遭遇しました。2 つのコンストラクターを持つクラスがあります。

この例は簡略化されています。2 番目のコンストラクターが > 0 であることを確認する方法がわかりませんf。これはコントラクトでも可能ですか?

0 投票する
1 に答える
5966 参照

.net-4.0 - ccrewrite.exeがコマンドラインから何も実行しないのはなぜですか?

Visual Studio 2010内からコードコントラクトが正常に機能ccrewrite.exeしていますが、コマンドラインからは何もできません。サンプルアプリは次のとおりです。

次に、コードをコンパイルして、ccrewrite.exeを実行します。

RewrittenDummy.exeその後、ファイルはありません。

たくさんのオプションを試しましたが、何も違いはありません。私が気づいたいくつかのこと:

  • 存在しないファイルを指定すると死ぬので、間違いなくDummy.exeを読み込んでいます
  • Dummy.exeには、Contractへの参照が確実に含まれています。引数なしで実行すると、適切に失敗します(ただし、書き直された場合に期待するように、エラーメッセージが入力されていません)。
  • 事後条件と不変条件を使用しても違いはありません

警告と冗長性を上げてみましたが、まったく役に立ちません。何が間違っているのでしょうか。

Code Contractsフォーラムでも質問されています。関連する回答はここに自分で追加します。)