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 パラメーターの最後の (出力) 値を表します。

events

ContractFailed

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

適用対象