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