Contract Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Содержит статические методы для представления контрактов программы, таких как предусловие, постусловие и инвариантность объектов.
public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
- Наследование
-
Contract
Комментарии
Классы контрактов кода позволяют указывать предварительные условия, постусловии и инварианты объектов в коде. Предусловия — это требования, которые должны быть выполнены при входе в метод или свойство. Постусловия описывают ожидания во время выхода из кода метода или свойства. Инварианты объектов описывают ожидаемое состояние для класса, у которого нет проблем с условиями. Дополнительные сведения о предварительных условиях, постусловиях и инвариантах объектов см. в разделе Code Contracts.
Средства и подробные инструкции по использованию контрактов кода см. в разделе Code Contracts on the Visual Studio Marketplace.
Важно!
Для вставки принудительного применения контрактов во время выполнения необходимо использовать двоичный перезапись. В противном случае контракты, такие как Contract.Ensures метод , могут быть проверены только статически и не будут создавать исключения во время выполнения, если контракт нарушен. Двоичное средство перезаписи CCRewrite можно скачать из раздела Code Contracts в Visual Studio Marketplace. CCRewrite поставляется с надстройкой Visual Studio, которая позволяет активировать принудительное применение контракта среды выполнения со страницы свойств проекта. Двоичное средство перезаписи и надстройка Visual Studio не поставляются вместе с Visual Studio 2010 или Windows SDK.
Методы
Assert(Boolean) |
Проверяет условие; если условие имеет значение |
Assert(Boolean, String) |
Проверяет условие; если условие имеет значение |
Assume(Boolean) |
Инструктирует инструменты анализа кода полагать, что указанным условием является |
Assume(Boolean, String) |
Инструктирует инструменты анализа кода полагать, что условием является |
EndContractBlock() |
Помечает конец раздела контракта, когда контракты метода содержат только предусловия вида |
Ensures(Boolean) |
Указывает контракт постусловия для включающего метода или свойства. |
Ensures(Boolean, String) |
Указывает контракт постусловия для предоставленного выходного условия и сообщение, отображаемое, если условие имеет значение |
EnsuresOnThrow<TException>(Boolean) |
Задает контракт постусловия для включающего метода или свойства на основе предоставленных исключения и состояния. |
EnsuresOnThrow<TException>(Boolean, String) |
Задает контракт постусловия и сообщение, которое необходимо отобразить, если условие имеет значение |
Exists(Int32, Int32, Predicate<Int32>) |
Определяет, удовлетворяет ли проверке какое-либо целое число в диапазоне целых чисел. |
Exists<T>(IEnumerable<T>, Predicate<T>) |
Определяет, существует ли в рамках функции элемент в указанной коллекции элементов. |
ForAll(Int32, Int32, Predicate<Int32>) |
Определяет, выполняется ли определенное условие для всех целых чисел в указанном диапазоне. |
ForAll<T>(IEnumerable<T>, Predicate<T>) |
Определяет, существуют ли в рамках функции все элементы в коллекции. |
Invariant(Boolean) |
Задает инвариантный контракт ля включающего метода или свойства. |
Invariant(Boolean, String) |
Указывает инвариантный контракт для включающего метода или свойства и отображает сообщение, если условие для контракта не выполняется. |
OldValue<T>(T) |
Представляет значения, какими они были в начале метода или свойства. |
Requires(Boolean) |
Указывает контракт предусловия для включающего метода или свойства. |
Requires(Boolean, String) |
Указывает контракт предусловия для включающего метода или свойства и отображает сообщение, если условие для контракта не выполняется. |
Requires<TException>(Boolean) |
Указывает контракт предусловия для включающего метода или свойства и выдает исключение, если условие для контракта не выполняется. |
Requires<TException>(Boolean, String) |
Задает контракт предусловия для включающего метода или свойства и создает исключение с предоставленным сообщением, если условие для контракта не выполняется. |
Result<T>() |
Представляет возвращаемое значение метода или свойства. |
ValueAtReturn<T>(T) |
Представляет итоговое (выходное) значение параметра |
События
ContractFailed |
Происходит, когда контракт не выполняется. |