Export (0) Print
Expand All

Contract Class

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.

  NameDescription
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsAssert(Boolean)Checks for a condition; if the condition is false, follows the escalation policy set for the analyzer.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsAssert(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 methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsAssume(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 methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsAssume(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 methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsEndContractBlockMarks the end of the contract section when a method's contracts contain only preconditions in the if-then-throw form.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsEnsures(Boolean)Specifies a postcondition contract for the enclosing method or property.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsEnsures(Boolean, String)Specifies a postcondition contract for a provided exit condition and a message to display if the condition is false.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsEnsuresOnThrow<TException>(Boolean)Specifies a postcondition contract for the enclosing method or property, based on the provided exception and condition.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsEnsuresOnThrow<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 methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsExists(Int32, Int32, Predicate<Int32>)Determines whether a specified test is true for any integer within a range of integers.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsExists<T>(IEnumerable<T>, Predicate<T>)Determines whether an element within a collection of elements exists within a function.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsForAll(Int32, Int32, Predicate<Int32>)Determines whether a particular condition is valid for all integers in a specified range.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsForAll<T>(IEnumerable<T>, Predicate<T>)Determines whether all the elements in a collection exist within a function.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsInvariant(Boolean)Specifies an invariant contract for the enclosing method or property.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsInvariant(Boolean, String)Specifies an invariant contract for the enclosing method or property, and displays a message if the condition for the contract fails.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsOldValue<T>Represents values as they were at the start of a method or property.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsRequires(Boolean)Specifies a precondition contract for the enclosing method or property.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsRequires(Boolean, String)Specifies a precondition contract for the enclosing method or property, and displays a message if the condition for the contract fails.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsRequires<TException>(Boolean)Specifies a precondition contract for the enclosing method or property, and throws an exception if the condition for the contract fails.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsRequires<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 methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsResult<T>Represents the return value of a method or property.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsValueAtReturn<T>Represents the final (output) value of an out parameter when returning from a method.
Top

  NameDescription
Public eventStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsContractFailedOccurs 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.

For tools and detailed instructions for using code contracts, see Code Contracts on the MSDN DevLabs Web site.

Important noteImportant

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 MSDN DevLabs Web site. 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.

.NET Framework

Supported in: 4.5, 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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.
Show:
© 2014 Microsoft