問題タブ [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.
c# - Contract.Assert(true)を使用し、メソッドが何かを返す必要がある場合はどうすればよいですか?
次のロジックのコードが少しあります。
理論的には、常に1つの要素が存在するため、この方法では問題は発生しません。いずれにせよ、念のため、メソッドの最後にアサーションを付けました。
問題は、このメソッドが何かを返す必要があり、コンパイラがアサーションがプログラムの実行を中断することを理解していないことです。コントラクトを使用する前は、このような状況で、問題を解決するために例外をスローしていました。これをContract.Assert()でどのように処理しますか?Contract.Assert()呼び出しの後にnullまたはdefault(element_type)を返し、それが呼び出されないことを認識してコンパイラーをシャットダウンしますか?または、これを行う他のよりエレガントな方法はありますか?
ありがとう
c# - Contract.ValueAtReturn()の見苦しい使用法
内部リストに要素を追加するメソッドを設計しています。クラスの構造は、次のようなものです。
さて、Contract.Ensures()
この呼び出しで_customersのサイズを1つ増やすことを考えていました。問題は、奇妙なコードになってしまうことです。
Contract.ValueAtReturn()
主な問題は、プロパティが実際にはメソッドであるため、唯一のパラメータが変数をとして受け入れるため、プロパティを直接参照することはできないということですout
。同じことを達成したい場合、状況はさらに奇妙になりますが、今回は値を返す必要があるメソッドを使用します。
これはかなり不器用なようです:(
コードコントラクトは物事をより明確にすることを目的とすべきであり、これは正反対のようです。私は何か間違ったことをしていますか?
ありがとう
c# - Contract.Existsはどのように価値を付加しますか?
VS2010に標準で付属しているコードコントラクトライブラリについて学び始めたところです。私がすぐに遭遇していることの1つは、契約条項のいくつかが実際に何を意味しているのかということです。
たとえば、これら2つのステートメントはどのように異なりますか?
言い換えれば、Contract.Existsは、私の関数を使用する開発者にとって、または静的コード分析システムのために、実際の目的で何をしますか?
c# - [Pure] メソッドに関する質問
次のメソッドは Pure ですか? とにかく現在のクラスでは変更されないため、このメソッドを実行する前にクラスで現在「見る」ことができるすべてのものは、実行後もまったく同じです。私は正しいですか?
html - F#および静的にチェックされたユニオンケース
間もなく、私と私の腕の兄弟であるJoelは、バージョン0.9のWingBeatsをリリースします。これはF#で記述された内部DSLです。これを使用すると、XHTMLを生成できます。インスピレーションの源の1つは、OcsigenフレームワークのXHTML.Mモジュールです。私はOCaml構文に慣れていませんが、XHTML.Mは、要素の属性と子が有効な型であるかどうかをどういうわけか静的にチェックすることを理解しています。
F#で同じことを静的にチェックすることはできませんでしたが、誰かがそれを行う方法について何か考えがあるのではないかと思います。
私の最初の素朴なアプローチは、XHTMLの各要素タイプをユニオンケースとして表すことでした。ただし、残念ながら、XHTML.Mのように、パラメーター値として有効なケースを静的に制限することはできません。
次に、インターフェイス(各要素タイプは有効な親ごとにインターフェイスを実装します)とタイプ制約を使用しようとしましたが、ソリューションの使用が面倒になるような方法で明示的なキャストを使用せずに機能させることはできませんでした。そして、それはとにかくエレガントな解決策のようには感じませんでした。
今日はコードコントラクトを見てきましたが、F#Interactiveと互換性がないようです。Alt + Enterキーを押すと、フリーズします。
私の質問をより明確にするためだけに。同じ問題の非常に単純な人工的な例を次に示します。
writeVowelが静的に母音のみを受け入れ、上記のように実行時にチェックしないようにします。
どうすればこれを達成できますか?誰かが何か考えを持っていますか?それを行うための賢い方法がなければなりません。ユニオンの場合ではない場合、おそらくインターフェースを使用しますか?私はこれに苦労しましたが、箱の中に閉じ込められており、その外を考えることはできません。
c# - MS の .NET 4.0 ライブラリに最も似ているサードパーティの Code-by-Contract ライブラリはどれですか?
契約によるコーディングに飛び込みたい。VS2010 (C# 4.0 コンパイラを使用) を入手しましたが、3.5 フレームワークをターゲットにする必要があります。
.NET 4.0 に最も似たクラスとインターフェイスを備えたコントラクト ライブラリによるサード パーティ コードはどれですか?
c# - "Contract can't be in try block" とはどういう意味ですか?
Microsoft コード コントラクトに 3.5 ライブラリを使用しています
次のコンパイラ メッセージが表示されます。
アップデート:
私はあなたの助けを借りてそれを理解しました:
- トップに移動
Contract.Result と照合する
Contract.Ensures(Contract.Result() != null, "オブジェクトを null にすることはできません");
c# - では、C#4.0 コード コントラクトは実際に何かを行うのでしょうか?
Spec# の素晴らしさに影響された静的クラスについて読んだ後、System.Diagnostics.Contracts.Contract
私は感激し、すぐにコードにContract.Requires()
andの呼び出しを追加し始めましContract.Ensures()
た。
私のコードが非常に素晴らしく、バグがないため、それらの呼び出しが実際に何かを実行したかどうかを確認することが最近まで行われなかったのだと思います。バグがすり抜けて、これらの呼び出しが何もしないことに気付きました! 条件に違反したときに少なくとも例外をスローすると思っていましたが、そのような運はありませんでした。
何か不足していますか?一体何がポイントなのか誰か知っていますか?
.net-4.0 - CodeContracts:オブジェクト参照がオブジェクトのインスタンスに設定されていない状態でccrewriteが失敗する
以下のコードはccrewriteを爆破させます!アイデア?ところで、ActualClassをコメントアウトすると、ccrewriteは成功します...
前もって感謝します!
.net - .NET 4.0でのコードコントラクトの実際の使用法は何ですか?
新しい.NETFramework4.0の登場で提供される新機能と拡張機能を完全に理解して活用するために、コードコントラクトの実際のアプリケーションの例を取得したいと思います。
- 誰かがこの機能の適用の良い例を持っていますか?
簡単な説明が付いたコードサンプルを入手して、それを使い始めるのに役立てたいと思います。