4 out of 5 rated this helpful - Rate this topic

Contract Class

Updated: March 2011

Contains static methods for representing program contracts such as preconditions, postconditions, and object invariants.

System.Object
  System.Diagnostics.Contracts.Contract

Namespace:  System.Diagnostics.Contracts
Assembly:  mscorlib (in mscorlib.dll)
public static class Contract

The Contract type exposes the following members.

  Name Description
Public method Static member Assert(Boolean) Checks for a condition; if the condition is false, follows the escalation policy set for the analyzer.
Public method Static member Assert(Boolean, String) Checks for a condition; if the condition is false, follows the escalation policy set by the analyzer and displays the specified message.
Public method Static member Assume(Boolean) Instructs code analysis tools to assume that the specified condition is true, even if it cannot be statically proven to always be true.
Public method Static member Assume(Boolean, String) 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.
Public method Static member EndContractBlock Marks the end of the contract section when a method's contracts contain only preconditions in the if-then-throw form.
Public method Static member Ensures(Boolean) Specifies a postcondition contract for the enclosing method or property.
Public method Static member Ensures(Boolean, String) Specifies a postcondition contract for a provided exit condition and a message to display if the condition is false.
Public method Static member EnsuresOnThrow<TException>(Boolean) Specifies a postcondition contract for the enclosing method or property, based on the provided exception and condition.
Public method Static member EnsuresOnThrow<TException>(Boolean, String) 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.
Public method Static member Exists(Int32, Int32, Predicate<Int32>) Determines whether a specified test is true for any integer within a range of integers.
Public method Static member Exists<T>(IEnumerable<T>, Predicate<T>) Determines whether an element within a collection of elements exists within a function.
Public method Static member ForAll(Int32, Int32, Predicate<Int32>) Determines whether a particular condition is valid for all integers in a specified range.
Public method Static member ForAll<T>(IEnumerable<T>, Predicate<T>) Determines whether all the elements in a collection exist within a function.
Public method Static member Invariant(Boolean) Specifies an invariant contract for the enclosing method or property.
Public method Static member Invariant(Boolean, String) Specifies an invariant contract for the enclosing method or property, and displays a message if the condition for the contract fails.
Public method Static member OldValue<T> Represents values as they were at the start of a method or property.
Public method Static member Requires(Boolean) Specifies a precondition contract for the enclosing method or property.
Public method Static member Requires(Boolean, String) Specifies a precondition contract for the enclosing method or property, and displays a message if the condition for the contract fails.
Public method Static member Requires<TException>(Boolean) Specifies a precondition contract for the enclosing method or property, and throws an exception if the condition for the contract fails.
Public method Static member 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.
Public method Static member Result<T> Represents the return value of a method or property.
Public method Static member ValueAtReturn<T> Represents the final (output) value of an out parameter when returning from a method.
Top
  Name Description
Public event Static member ContractFailed Occurs when a contract fails.
Top

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.

Important note Important

You must install a Visual Studio add-in to enforce contracts. The Code Contracts Premium Edition add-in lets you specify static and run-time checking of code contracts on the project Properties page. If you do not enable run-time checking, contracts such as the Contract.Ensures method will not throw exceptions during run time if a contract is violated. The Visual Studio add-in does not ship with Visual Studio 2010 or the Windows SDK.

.NET Framework

Supported in: 4

.NET Framework Client Profile

Supported in: 4

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Date

History

Reason

March 2011

Updated information about the Visual Studio add-in.

Customer feedback.

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ