Contract.Invariant Contract.Invariant Contract.Invariant Contract.Invariant Method

Определение

Указывает контракт для включающего метода или свойства.Specifies a contract for an enclosing method or property.

Перегрузки

Invariant(Boolean) Invariant(Boolean) Invariant(Boolean) Invariant(Boolean)

Задает инвариантный контракт ля включающего метода или свойства.Specifies an invariant contract for the enclosing method or property.

Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String)

Указывает инвариантный контракт для включающего метода или свойства и отображает сообщение, если условие для контракта не выполняется.Specifies an invariant contract for the enclosing method or property, and displays a message if the condition for the contract fails.

Invariant(Boolean) Invariant(Boolean) Invariant(Boolean) Invariant(Boolean)

Задает инвариантный контракт ля включающего метода или свойства.Specifies an invariant contract for the enclosing method or property.

public:
 static void Invariant(bool condition);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition);
static member Invariant : bool -> unit
Public Shared Sub Invariant (condition As Boolean)

Параметры

condition
Boolean Boolean Boolean Boolean

Условное выражение, которое требуется протестировать.The conditional expression to test.

Комментарии

Invariant контракты, содержащихся в метод, который определяется параметром ContractInvariantMethodAttribute атрибут; как правило, метод называется ObjectInvariant.Invariant contracts are contained within a method that is identified by the ContractInvariantMethodAttribute attribute; typically, the method is named ObjectInvariant.

  • Этот контракт можно указать только в выделенной инвариантный метод, объявленный в классе.This contract can be specified only in a dedicated invariant method that is declared on a class. Если метод не запечатан, он должен указывать только на защищенные члены, не закрытые члены, таким образом, чтобы подклассы могли быть уверены в поддержке инвариантов.If the method is not sealed, it should refer only to protected members, not private members, so that subclasses can be sure to maintain the invariants.

  • Этот контракт не предоставляется для клиентов; Таким образом он может ссылаться на элементы, которые менее видимы, чем у включающего метода.This contract is not exposed to clients; therefore, it may reference members that are less visible than the enclosing method.

  • Необходимо использовать двоичный метод перезаписи для принудительного выполнения данной инвариантности.You must use the binary rewriter for run-time enforcement of this invariant.

  • Инварианты условно определяются на основе наличия из CONTRACTS FULL символов.Invariants are conditionally defined based on the presence of the CONTRACTS FULL symbol. При проверке во время выполнения инварианты проверяются в конце каждого открытого метода.During run-time checking, invariants are checked at the end of each public method. Если инвариант упоминает открытый метод в том же классе, проверка инварианта, которая обычно происходит в конце этого открытого метода отключен и проверяется только в конце самого внешнего вызова метода для этого класса.If an invariant mentions a public method in the same class, the invariant check that would normally happen at the end of that public method is disabled and checked only at the end of the outermost method call to that class. Это также происходит, если класс повторно вводится в результате вызова метода в другом классе.This also happens if the class is re-entered because of a call to a method on another class.

Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String)

Указывает инвариантный контракт для включающего метода или свойства и отображает сообщение, если условие для контракта не выполняется.Specifies an invariant contract for the enclosing method or property, and displays a message if the condition for the contract fails.

public:
 static void Invariant(bool condition, System::String ^ userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition, string userMessage);
static member Invariant : bool * string -> unit
Public Shared Sub Invariant (condition As Boolean, userMessage As String)

Параметры

condition
Boolean Boolean Boolean Boolean

Условное выражение, которое требуется протестировать.The conditional expression to test.

userMessage
String String String String

Отображаемое сообщение при условии false.The message to display if the condition is false.

Комментарии

Invariant контракты, содержащихся в метод, который определяется параметром ContractInvariantMethodAttribute атрибут; как правило, метод называется ObjectInvariant.Invariant contracts are contained within a method that is identified by the ContractInvariantMethodAttribute attribute; typically, the method is named ObjectInvariant.

  • Этот контракт можно указать только в выделенной инвариантный метод, объявленный в классе.This contract can be specified only in a dedicated invariant method that is declared on a class.

  • Этот контракт не предоставляется для клиентов; Таким образом он может ссылаться на элементы, которые менее видимы, чем у включающего метода.This contract is not exposed to clients; therefore, it may reference members that are less visible than the enclosing method.

  • Необходимо использовать двоичный метод перезаписи для принудительного выполнения данной инвариантности.You must use the binary rewriter for run-time enforcement of this invariant.

  • Инварианты условно определяются на CONTRACTS FULL символов.Invariants are conditionally defined on the CONTRACTS FULL symbol. При проверке во время выполнения инварианты проверяются в конце каждого открытого метода.During run-time checking, invariants are checked at the end of each public method. Если инвариант упоминает открытый метод в том же классе, проверка инварианта, которая обычно происходит в конце этого открытого метода отключен и проверяется только в конце самого внешнего вызова метода для этого класса.If an invariant mentions a public method in the same class, the invariant check that would normally happen at the end of that public method is disabled and checked only at the end of the outermost method call to that class. Это также происходит, если класс повторно вводится в результате вызова метода в другом классе.This also happens if the class is re-entered because of a call to a method on another class.

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