Contract Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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
- Inheritance
-
Contract
Remarks
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.
For tools and detailed instructions for using code contracts, see Code Contracts on the Visual Studio Marketplace.
Important
You must use a binary rewriter to insert run-time enforcement of contracts. 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. You can download the binary rewriter CCRewrite from Code Contracts on the Visual Studio Marketplace. CCRewrite comes with a Visual Studio add-in that enables you to activate run-time contract enforcement from the project Properties page. The binary rewriter and the Visual Studio add-in do not ship with Visual Studio 2010 or the Windows SDK.
Methods
Assert(Boolean) |
Checks for a condition; if the condition is |
Assert(Boolean, String) |
Checks for a condition; if the condition is |
Assume(Boolean) |
Instructs code analysis tools to assume that the specified condition is |
Assume(Boolean, String) |
Instructs code analysis tools to assume that a condition is |
EndContractBlock() |
Marks the end of the contract section when a method's contracts contain only preconditions in the |
Ensures(Boolean) |
Specifies a postcondition contract for the enclosing method or property. |
Ensures(Boolean, String) |
Specifies a postcondition contract for a provided exit condition and a message to display if the condition is |
EnsuresOnThrow<TException>(Boolean) |
Specifies a postcondition contract for the enclosing method or property, based on the provided exception and condition. |
EnsuresOnThrow<TException>(Boolean, String) |
Specifies a postcondition contract and a message to display if the condition is |
Exists(Int32, Int32, Predicate<Int32>) |
Determines whether a specified test is true for any integer within a range of integers. |
Exists<T>(IEnumerable<T>, Predicate<T>) |
Determines whether an element within a collection of elements exists within a function. |
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>) |
Determines whether all the elements in a collection exist within a function. |
Invariant(Boolean) |
Specifies an invariant contract for the enclosing method or property. |
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) |
Represents values as they were at the start of a method or property. |
Requires(Boolean) |
Specifies a precondition contract for the enclosing method or property. |
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) |
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) |
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>() |
Represents the return value of a method or property. |
ValueAtReturn<T>(T) |
Represents the final (output) value of an |
Events
ContractFailed |
Occurs when a contract fails. |