問題タブ [microsoft-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.
c# - この契約を証明するには何が必要ですか?
トーナメントでラウンドを実行するアプリケーションがあり、この単純化されたコード構造に関する契約警告が表示されます。
警告は次のとおりです。
私は何が間違っているのですか?どうすればこれを証明できIList<T>
ますか?これは静的アナライザのバグですか?バグレポートをMicrosoftに送信するにはどうすればよいですか?
c# - .NET コード コントラクト: これよりも基本的なものになることはありますか?
Visual Studio (2008) 内から静的検証の警告に気付いたとき、スタック オーバーフローで誰かの質問に答えようとしていじり回していました。
「 required unproven source != null」というメッセージが表示されます。これが事実ではないことは私には明らかです。もちろんこれはほんの一例です。一方で、いくつかのかなり気の利いたものがかなりうまく機能しているようです。
1.2.20518.12 リリース (5 月 18 日) を使用しています。コード コントラクトは非常に興味深いと思いますが、他にこのようなケースがあった人はいますか? 現在の実装は実際に使用できると思いますか、それとも現時点では純粋に学術的であると考えますか?
私はこれをコミュニティ wiki にしましたが、いくつかの意見を聞きたいです :)
unit-testing - .NET 4.0 コード コントラクト - 単体テストにどのように影響しますか?
例えばこちらの記事で紹介しています。
メリットは何ですか?
静的分析はクールに思えますが、同時に単体テストで null をパラメーターとして渡す機能を妨げます。(記事の例に従った場合)
単体テストのトピックについてですが、自動テストを既に実践している場合、現在の状況を考えると、コード契約の意味はありませんか?
アップデート
Code Contracts で遊んでみて、少しがっかりしました。たとえば、受け入れられた回答のコードに基づいて:
単体テストでは、null が渡されないこと、およびコントラクトがビジネス ロジックの場合に結果がゼロ以上であることを確認するテストを作成する必要があります。つまり、最初のコントラクトを削除しても、特にこの機能のテストを行っていない限り、テストが壊れることはありません。ただし、これは、Visual Studio のより優れた (究極など) エディションに組み込まれている静的分析を使用しないことに基づいています。
基本的に、それらはすべて従来の if ステートメントを記述する別の方法に要約されます。Code Contracts を使用して TDDを実際に使用した私の経験は、その理由とその方法を示しています。
design-by-contract - Visual Studio 2010 で Microsoft Contracts の静的チェックを設定するにはどうすればよいですか?
最近 Visual Studio 2010b2 をダウンロードしましたが、Microsoft 契約の静的チェッカーに関するいくつかの質問を再評価したいと思いました。
コードの名前空間を使用してほとんどのコードを再利用System.Diagnostics.Contracts
できましたが、静的チェッカーを有効にする方法がわかりません。追加のプラグインが必要ですか?
VS2010 では、契約による設計は「そのまま機能する」はずだという印象を受けました。
ご協力いただきありがとうございます。
c# - Microsoft.Contracts 名前空間
asp.netのMicrosoft.Contracts名前空間が必要なのは何ですか?
つまり、どのような場合に書くことができますusing Microsoft.Contracts;
か?
c# - C# コードで不正な形式のコントラクトを取得するのはなぜですか?
このコントラクトを以下に記述すると、Visual Studio でエラーが表示されます。
Error 20 Malformed contract section in method '....get_Page'
問題はif
ブロック?
編集:
Lasse V. Karisen はコメントに投稿しました:
どうですか: Contract.Ensures(result == null || result >= 0);
?
はい、Karisen、以前にこれを試してみましたが、コンパイルされました。しかし、疑問が残ります:if
コントラクトを使用するときに s を持つことはできないのでしょうか?
私が抱えている別の問題は無知です(主に上記の例が機能することを考慮して)、結果の使用も含まれます:
c# - C#:コードコントラクトと通常のパラメーターの検証
次の2つのコードについて考えてみます。
と
私は個人的に最初のバージョンを好みます。コードがはるかに明確で小さく、コントラクトを簡単にオフにできるからです。ただし、不利な点は、Visual Studio Code Analysisが、パラメーター値のnullをチェックする必要があると非難し、コンストラクターのコントラクトが、正規表現によって分と時間が指定された境界内にあることを確認しないことです。
そのため、多くの間違った警告が表示され、RegEx検証以外のFormatExceptionsをスローせずに、コントラクトを使用して文字列値を検証する方法がわかりません。
コードコントラクトを使用して、これと同等の状況をどのように解決するかについての提案はありますか?
asp.net-mvc-3 - 新しいMVC3ViewBagとのコード契約
MVC 3のViewBagに対する[X]暗黙の非ヌル義務を満たす方法を見つけようと頭を悩ませています。新しい動的ViewBagタイプでコードコントラクトをジャイブさせる方法を思いついた人はいますか?
ViewBagSafeなどのベースコントローラーでViewBagをラップできるようにしたいと思います。
ViewBagがnullになることはないので、これはプロジェクトでは実際には問題ではないことを認識していますが、コードコントラクトをデフォルトのnullのままにして、将来のスリップアップをチェックします(警告なしでコンパイルできます)。自分の契約違反のコーディングを簡単に識別できるようにするため)。
asp.net - facebook c#sdk で facebookclient オブジェクトを作成するときの microsoft.contracts dll エラー
上記のコードはエラーを生成しました......
ファイルまたはアセンブリ 'Microsoft.Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=736440c9b414ea16' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
私のweb.configセクションは次のとおりです