Contract Contract Contract Contract Class

定義

実行前の状態、実行後の状態、オブジェクトの不変部分などのプログラム コントラクトを表す静的メソッドを格納します。Contains static methods for representing program contracts such as preconditions, postconditions, and object invariants.

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

注釈

コード コントラクト クラスを使用して、コード内の事前条件、事後条件、およびオブジェクト不変条件を指定できます。Code contract classes let you specify preconditions, postconditions, and object invariants in your code. 事前条件とは、メソッドやプロパティに入るときに満たされている必要がある要件です。Preconditions are requirements that must be met when entering a method or property. 事後条件は、メソッドやプロパティのコードが終了するときの予測を表します。Postconditions describe expectations at the time the method or property code exits. オブジェクト不変条件を条件の問題を持たないクラスに対して予期される状態について説明します。Object invariants describe the expected state for a class that has no condition problems. 事前条件、事後条件、およびオブジェクト不変条件の詳細については、次を参照してください。コード コントラクトします。For more information about preconditions, postconditions, and object invariants, see Code Contracts.

コード コントラクトを使用するためのツールおよび詳細な手順については、MSDN DevLabs Web サイトの「Code Contracts」(コード コントラクト) を参照してください。For tools and detailed instructions for using code contracts, see Code Contracts on the MSDN DevLabs Web site.

重要

バイナリ リライターを使用して、コントラクトの実行時の強制を挿入する必要があります。You must use a binary rewriter to insert run-time enforcement of contracts. それ以外の場合、コントラクトなど、Contract.Ensuresメソッドが静的にしかテストできないし、コントラクトに違反している場合、ランタイム処理中に例外をスローしないは。Otherwise, contracts such as the Contract.Ensures method can only be tested statically and will not throw exceptions during run time if a contract is violated. バイナリ リライター CCRewrite をダウンロードすることからコード コントラクトMSDN DevLabs Web サイト。You can download the binary rewriter CCRewrite from Code Contracts on the MSDN DevLabs Web site. CCRewrite 付属プロジェクトからの実行時のコントラクトの適用をアクティブ化することができます、Visual Studio アドインプロパティページ。CCRewrite comes with a Visual Studio add-in that enables you to activate run-time contract enforcement from the project Properties page. バイナリ リライターと Visual Studio アドインを出荷しませんVisual Studio 2010Visual Studio 2010または Windows SDK。The binary rewriter and the Visual Studio add-in do not ship with Visual Studio 2010Visual Studio 2010 or the Windows SDK.

メソッド

Assert(Boolean) Assert(Boolean) Assert(Boolean) Assert(Boolean)

条件をチェックし、その条件が false の場合は、アナライザーに設定されたエスカレーション ポリシーに従います。Checks for a condition; if the condition is false, follows the escalation policy set for the analyzer.

Assert(Boolean, String) Assert(Boolean, String) Assert(Boolean, String) Assert(Boolean, String)

条件をチェックし、その条件が false の場合は、アナライザーによって設定されたエスカレーション ポリシーに従い、指定されたメッセージを表示します。Checks for a condition; if the condition is false, follows the escalation policy set by the analyzer and displays the specified message.

Assume(Boolean) Assume(Boolean) Assume(Boolean) Assume(Boolean)

常に true であるとは静的に証明されない場合でも、指定された条件が true であると想定するようコード分析ツールに指示します。Instructs code analysis tools to assume that the specified condition is true, even if it cannot be statically proven to always be true.

Assume(Boolean, String) Assume(Boolean, String) Assume(Boolean, String) Assume(Boolean, String)

常に true であるとは静的に証明されない場合でも、条件が true であると想定するようコード分析ツールに指示し、想定が失敗した場合はメッセージを表示します。Instructs code analysis tools to assume that a condition is true, even if it cannot be statically proven to always be true, and displays a message if the assumption fails.

EndContractBlock() EndContractBlock() EndContractBlock() EndContractBlock()

メソッドのコントラクトに if-then-throw の形式で実行前の状態のみが含まれる場合に、コントラクト セクションの終わりをマークします。Marks the end of the contract section when a method's contracts contain only preconditions in the if-then-throw form.

Ensures(Boolean) Ensures(Boolean) Ensures(Boolean) Ensures(Boolean)

外側のメソッドまたはプロパティの実行後の状態のコントラクトを指定します。Specifies a postcondition contract for the enclosing method or property.

Ensures(Boolean, String) Ensures(Boolean, String) Ensures(Boolean, String) Ensures(Boolean, String)

指定された終了条件の実行後の状態のコントラクトと、条件が false の場合に表示するメッセージを指定します。Specifies a postcondition contract for a provided exit condition and a message to display if the condition is false.

EnsuresOnThrow<TException>(Boolean) EnsuresOnThrow<TException>(Boolean) EnsuresOnThrow<TException>(Boolean) EnsuresOnThrow<TException>(Boolean)

指定された例外および条件に基づいて、外側のメソッドまたはプロパティに実行後の状態のコントラクトを指定します。Specifies a postcondition contract for the enclosing method or property, based on the provided exception and condition.

EnsuresOnThrow<TException>(Boolean, String) EnsuresOnThrow<TException>(Boolean, String) EnsuresOnThrow<TException>(Boolean, String) EnsuresOnThrow<TException>(Boolean, String)

指定された例外および条件に基づいて、実行後の状態のコントラクトと、外側のメソッドまたはプロパティの条件が false の場合に表示するメッセージを指定します。Specifies a postcondition contract and a message to display if the condition is false for the enclosing method or property, based on the provided exception and condition.

Exists(Int32, Int32, Predicate<Int32>) Exists(Int32, Int32, Predicate<Int32>) Exists(Int32, Int32, Predicate<Int32>) Exists(Int32, Int32, Predicate<Int32>)

ある整数範囲内のすべての整数について指定したテストが true かどうかを判定します。Determines whether a specified test is true for any integer within a range of integers.

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

ある要素のコレクション内の要素が関数内に存在するかどうかを判断します。Determines whether an element within a collection of elements exists within a function.

ForAll(Int32, Int32, Predicate<Int32>) ForAll(Int32, Int32, Predicate<Int32>) ForAll(Int32, Int32, Predicate<Int32>) ForAll(Int32, Int32, Predicate<Int32>)

指定した範囲内のすべての整数について特定の状態が有効かどうかを判定します。Determines whether a particular condition is valid for all integers in a specified range.

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

コレクション内のすべての要素が関数内に存在するかどうかを判断します。Determines whether all the elements in a collection exist within a function.

Invariant(Boolean) Invariant(Boolean) Invariant(Boolean) Invariant(Boolean)

外側のメソッドまたはプロパティの不変コントラクトを指定します。Specifies an invariant contract for the enclosing method or property.

Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String)

外側のメソッドまたはプロパティの不変コントラクトを指定し、コントラクトの条件が失敗した場合はメッセージを表示します。Specifies an invariant contract for the enclosing method or property, and displays a message if the condition for the contract fails.

OldValue<T>(T) OldValue<T>(T) OldValue<T>(T) OldValue<T>(T)

メソッドまたはプロパティの開始時の値を表します。Represents values as they were at the start of a method or property.

Requires(Boolean) Requires(Boolean) Requires(Boolean) Requires(Boolean)

外側のメソッドまたはプロパティの実行前の状態のコントラクトを指定します。Specifies a precondition contract for the enclosing method or property.

Requires(Boolean, String) Requires(Boolean, String) Requires(Boolean, String) Requires(Boolean, String)

外側のメソッドまたはプロパティの実行前の状態のコントラクトを指定し、コントラクトの条件が失敗した場合はメッセージを表示します。Specifies a precondition contract for the enclosing method or property, and displays a message if the condition for the contract fails.

Requires<TException>(Boolean) Requires<TException>(Boolean) Requires<TException>(Boolean) Requires<TException>(Boolean)

外側のメソッドまたはプロパティの実行前の状態のコントラクトを指定し、コントラクトの条件が失敗した場合は例外をスローします。Specifies a precondition contract for the enclosing method or property, and throws an exception if the condition for the contract fails.

Requires<TException>(Boolean, String) Requires<TException>(Boolean, String) Requires<TException>(Boolean, String) Requires<TException>(Boolean, String)

外側のメソッドまたはプロパティの実行前の状態のコントラクトを指定し、コントラクトの条件が失敗した場合は指定されたメッセージで例外をスローします。Specifies a precondition contract for the enclosing method or property, and throws an exception with the provided message if the condition for the contract fails.

Result<T>() Result<T>() Result<T>() Result<T>()

メソッドまたはプロパティの戻り値を表します。Represents the return value of a method or property.

ValueAtReturn<T>(T) ValueAtReturn<T>(T) ValueAtReturn<T>(T) ValueAtReturn<T>(T)

メソッドから戻るときの out パラメーターの最後の (出力) 値を表します。Represents the final (output) value of an out parameter when returning from a method.

イベント

ContractFailed ContractFailed ContractFailed ContractFailed

コントラクトが失敗すると発生します。Occurs when a contract fails.

適用対象