Contract.Invariant Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает контракт для включающего метода или свойства.
Перегрузки
| Имя | Описание |
|---|---|
| Invariant(Boolean) |
Указывает инвариантный контракт для заключающего метода или свойства. |
| Invariant(Boolean, String) |
Указывает инвариантный контракт для заключающего метода или свойства и отображает сообщение, если условие контракта завершается ошибкой. |
Invariant(Boolean)
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
Указывает инвариантный контракт для заключающего метода или свойства.
public:
static void Invariant(bool condition);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant(bool condition);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Invariant : bool -> unit
Public Shared Sub Invariant (condition As Boolean)
Параметры
- condition
- Boolean
Условное выражение для тестирования.
- Атрибуты
Комментарии
Invariant контракты содержатся в методе, который определяется атрибутом ContractInvariantMethodAttribute ; обычно этот метод называется ObjectInvariant.
Этот контракт можно указать только в выделенном инвариантном методе, объявленном в классе. Если метод не запечатан, он должен ссылаться только на защищенные элементы, а не частные члены, чтобы подклассы могли поддерживать инварианты.
Этот контракт не предоставляется клиентам; Таким образом, он может ссылать на элементы, которые менее видимы, чем включающий метод.
Необходимо использовать двоичный перезапись для принудительного применения этого инвариантного кода во время выполнения.
Инварианты определяются условно на основе присутствия символа
CONTRACTS FULL. Во время проверки во время выполнения инварианты проверяются в конце каждого общедоступного метода. Если инвариантный упоминает общедоступный метод в том же классе, инвариантная проверка, которая обычно происходит в конце этого общедоступного метода, отключается и проверяется только в конце вызова внешнего метода этого класса. Это также происходит, если класс повторно введен из-за вызова метода в другом классе.
Применяется к
Invariant(Boolean, String)
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
Указывает инвариантный контракт для заключающего метода или свойства и отображает сообщение, если условие контракта завершается ошибкой.
public:
static void Invariant(bool condition, System::String ^ userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant(bool condition, string userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant(bool condition, string? userMessage);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Invariant : bool * string -> unit
Public Shared Sub Invariant (condition As Boolean, userMessage As String)
Параметры
- condition
- Boolean
Условное выражение для тестирования.
- userMessage
- String
Сообщение, отображаемое, если условие .false
- Атрибуты
Комментарии
Invariant контракты содержатся в методе, который определяется атрибутом ContractInvariantMethodAttribute ; обычно этот метод называется ObjectInvariant.
Этот контракт можно указать только в выделенном инвариантном методе, объявленном в классе.
Этот контракт не предоставляется клиентам; Таким образом, он может ссылать на элементы, которые менее видимы, чем включающий метод.
Необходимо использовать двоичный перезапись для принудительного применения этого инвариантного кода во время выполнения.
Инвариантные символы определяются условно.
CONTRACTS FULLВо время проверки во время выполнения инварианты проверяются в конце каждого общедоступного метода. Если инвариантный упоминает общедоступный метод в том же классе, инвариантная проверка, которая обычно происходит в конце этого общедоступного метода, отключается и проверяется только в конце вызова внешнего метода этого класса. Это также происходит, если класс повторно введен из-за вызова метода в другом классе.