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. Дополнительные сведения о предусловия, постусловия и инварианты объектов, см. в разделе Code Contracts.For more information about preconditions, postconditions, and object invariants, see Code Contracts.

Сведения о средствах и подробные инструкции по использованию контрактов кода см. на странице Контракты кода на веб-сайте MSDN DevLabs.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 из Code Contracts на сайте MSDN DevLabs.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 или пакет SDK для Windows.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>)

Определяет, удовлетворяет ли проверке какое-либо целое число в диапазоне целых чисел.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.

Применяется к