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 Во время проверки во время выполнения инварианты проверяются в конце каждого общедоступного метода. Если инвариантный упоминает общедоступный метод в том же классе, инвариантная проверка, которая обычно происходит в конце этого общедоступного метода, отключается и проверяется только в конце вызова внешнего метода этого класса. Это также происходит, если класс повторно введен из-за вызова метода в другом классе.

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