Contract Класс

Определение

Содержит статические методы для представления контрактов программы, таких как предусловие, постусловие и инвариантность объектов.

public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
Наследование
Contract

Комментарии

Классы контрактов кода позволяют указывать предварительные условия, посткондиции и инварианты объектов в коде. Предусловия — это требования, которые должны быть выполнены при входе в метод или свойство. Постусловия описывают ожидания во время выхода из кода метода или свойства. Инварианты объектов описывают ожидаемое состояние для класса, не имеющего проблем с состоянием. Дополнительные сведения о предусловиях, посткондициях и инвариантных объектах см. в разделе "Контракты кода".

Средства и подробные инструкции по использованию контрактов кода см. в разделе "Контракты кода" в Visual Studio Marketplace.

Важно!

Чтобы вставить принудительное применение контрактов во время выполнения, необходимо использовать двоичный перезапись. В противном случае контракты, такие как Contract.Ensures метод, могут быть проверены статически и не будут создавать исключения во время выполнения, если контракт нарушается. Вы можете скачать ccRewrite двоичного средства перезаписи из code Contracts в Visual Studio Marketplace. CCRewrite поставляется с надстройкой Visual Studio, которая позволяет активировать принудительное применение контракта во время выполнения со страницы свойств проекта. Двоичный перезапись и надстройка Visual Studio не поставляются с Visual Studio 2010 или пакетом SDK для Windows.

Методы

Assert(Boolean)

Проверяет условие; если условие имеет значение false, следует политике эскалации, установленной для анализатора.

Assert(Boolean, String)

Проверяет условие; если условие имеет значение false, следует политике эскалации, установленной анализатором, и отображает указанное сообщение.

Assume(Boolean)

Инструктирует инструменты анализа кода полагать, что указанным условием является true, даже если статически невозможно подтвердить постоянное значение true.

Assume(Boolean, String)

Инструктирует инструменты анализа кода полагать, что условием является true, даже если статически невозможно подтвердить постоянное значение true, и отображает сообщение, если предположение было ошибочным.

EndContractBlock()

Помечает конец раздела контракта, когда контракты метода содержат только предусловия вида if-then-throw.

Ensures(Boolean)

Указывает контракт постусловия для включающего метода или свойства.

Ensures(Boolean, String)

Указывает контракт постусловия для предоставленного выходного условия и сообщение, отображаемое, если условие имеет значение false.

EnsuresOnThrow<TException>(Boolean)

Задает контракт постусловия для включающего метода или свойства на основе предоставленных исключения и состояния.

EnsuresOnThrow<TException>(Boolean, String)

Задает контракт постусловия и сообщение, которое необходимо отобразить, если условие имеет значение false, для включающего метода или свойства на основе предоставленных исключения и условия.

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)

Представляет итоговое (выходное) значение параметра out по возвращении из метода.

События

ContractFailed

Происходит, когда контракт не выполняется.

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