次の方法で共有


Contract クラス

定義

実行前の状態、実行後の状態、オブジェクトの不変部分などのプログラム コントラクトを表す静的メソッドを格納します。

public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
継承
Contract

注釈

コード コントラクト クラスを使用すると、コードで前提条件、事後条件、およびオブジェクトインバリアントを指定できます。 事前条件とは、メソッドやプロパティに入るときに満たされている必要がある要件です。 事後条件は、メソッドやプロパティのコードが終了するときの予測を表します。 オブジェクトインバリアントは、条件の問題がないクラスの予期される状態を表します。 前提条件、事後条件、およびオブジェクトインバリアントの詳細については、「 コード コントラクト」を参照してください。

コード コントラクトを使用するためのツールと詳細な手順については、「Visual Studio Marketplace の コード コントラクト 」を参照してください。

重要

バイナリ リライターを使用して、コントラクトの実行時の適用を挿入する必要があります。 それ以外の Contract.Ensures 場合、メソッドなどのコントラクトは静的にのみテストでき、コントラクトに違反した場合は実行時に例外をスローしません。 バイナリ リライター CCRewrite は、Visual Studio Marketplace の コード コントラクト からダウンロードできます。 CCRewrite には、プロジェクトの [プロパティ ] ページから実行時コントラクトの適用をアクティブ化できる Visual Studio アドインが付属しています。 バイナリ リライターと Visual Studio アドインは、Visual Studio 2010 または Windows SDKに付属していません。

メソッド

Assert(Boolean)

条件をチェックし、その条件が false の場合は、アナライザーに設定されたエスカレーション ポリシーに従います。

Assert(Boolean, String)

条件をチェックし、その条件が false の場合は、アナライザーによって設定されたエスカレーション ポリシーに従い、指定されたメッセージを表示します。

Assume(Boolean)

常に true であるとは静的に証明されない場合でも、指定された条件が true であると想定するようコード分析ツールに指示します。

Assume(Boolean, String)

常に true であるとは静的に証明されない場合でも、条件が true であると想定するようコード分析ツールに指示し、想定が失敗した場合はメッセージを表示します。

EndContractBlock()

メソッドのコントラクトに if-then-throw の形式で実行前の状態のみが含まれる場合に、コントラクト セクションの終わりをマークします。

Ensures(Boolean)

外側のメソッドまたはプロパティの実行後の状態のコントラクトを指定します。

Ensures(Boolean, String)

指定された終了条件の実行後の状態のコントラクトと、条件が false の場合に表示するメッセージを指定します。

EnsuresOnThrow<TException>(Boolean)

指定された例外および条件に基づいて、外側のメソッドまたはプロパティに実行後の状態のコントラクトを指定します。

EnsuresOnThrow<TException>(Boolean, String)

指定された例外および条件に基づいて、実行後の状態のコントラクトと、外側のメソッドまたはプロパティの条件が false の場合に表示するメッセージを指定します。

Exists(Int32, Int32, Predicate<Int32>)

ある整数範囲内のすべての整数について指定したテストが true かどうかを判定します。

Exists<T>(IEnumerable<T>, Predicate<T>)

ある要素のコレクション内の要素が関数内に存在するかどうかを判断します。

ForAll(Int32, Int32, Predicate<Int32>)

指定した範囲内のすべての整数について特定の状態が有効かどうかを判定します。

ForAll<T>(IEnumerable<T>, Predicate<T>)

コレクション内のすべての要素が関数内に存在するかどうかを判断します。

Invariant(Boolean)

外側のメソッドまたはプロパティの不変コントラクトを指定します。

Invariant(Boolean, String)

外側のメソッドまたはプロパティの不変コントラクトを指定し、コントラクトの条件が失敗した場合はメッセージを表示します。

OldValue<T>(T)

メソッドまたはプロパティの開始時の値を表します。

Requires(Boolean)

外側のメソッドまたはプロパティの実行前の状態のコントラクトを指定します。

Requires(Boolean, String)

外側のメソッドまたはプロパティの実行前の状態のコントラクトを指定し、コントラクトの条件が失敗した場合はメッセージを表示します。

Requires<TException>(Boolean)

外側のメソッドまたはプロパティの実行前の状態のコントラクトを指定し、コントラクトの条件が失敗した場合は例外をスローします。

Requires<TException>(Boolean, String)

外側のメソッドまたはプロパティの実行前の状態のコントラクトを指定し、コントラクトの条件が失敗した場合は指定されたメッセージで例外をスローします。

Result<T>()

メソッドまたはプロパティの戻り値を表します。

ValueAtReturn<T>(T)

メソッドから戻るときの out パラメーターの最後の (出力) 値を表します。

イベント

ContractFailed

コントラクトが失敗すると発生します。

適用対象