Contract.Invariant Método

Definição

Especifica um contrato para um método ou propriedade delimitando.

Sobrecargas

Nome Description
Invariant(Boolean)

Especifica um contrato invariável para o método ou propriedade delimitada.

Invariant(Boolean, String)

Especifica um contrato invariável para o método ou propriedade delimitante e exibe uma mensagem se a condição do contrato falhar.

Invariant(Boolean)

Especifica um contrato invariável para o método ou propriedade delimitada.

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)

Parâmetros

condition
Boolean

A expressão condicional a ser testada.

Atributos

Comentários

Invariant os contratos estão contidos em um método identificado pelo ContractInvariantMethodAttribute atributo; normalmente, o método é nomeado ObjectInvariant.

  • Esse contrato só pode ser especificado em um método invariável dedicado que é declarado em uma classe. Se o método não estiver lacrado, ele deverá se referir apenas a membros protegidos, não a membros privados, para que as subclasses possam manter os invariáveis.

  • Esse contrato não é exposto a clientes; portanto, ele pode referenciar membros que são menos visíveis do que o método delimitamento.

  • Você deve usar o reescritor binário para a imposição em tempo de execução dessa invariável.

  • Invariáveis são definidos condicionalmente com base na presença do CONTRACTS FULL símbolo. Durante a verificação em tempo de execução, os invariáveis são verificados no final de cada método público. Se um invariável mencionar um método público na mesma classe, a verificação invariável que normalmente aconteceria no final desse método público será desabilitada e verificada somente no final da chamada de método mais externa para essa classe. Isso também acontece se a classe for inserida novamente devido a uma chamada a um método em outra classe.

Aplica-se a

Invariant(Boolean, String)

Especifica um contrato invariável para o método ou propriedade delimitante e exibe uma mensagem se a condição do contrato falhar.

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")>]
static member Invariant : bool * string -> unit
Public Shared Sub Invariant (condition As Boolean, userMessage As String)

Parâmetros

condition
Boolean

A expressão condicional a ser testada.

userMessage
String

A mensagem a ser exibida se a condição for false.

Atributos

Comentários

Invariant os contratos estão contidos em um método identificado pelo ContractInvariantMethodAttribute atributo; normalmente, o método é nomeado ObjectInvariant.

  • Esse contrato só pode ser especificado em um método invariável dedicado que é declarado em uma classe.

  • Esse contrato não é exposto a clientes; portanto, ele pode referenciar membros que são menos visíveis do que o método delimitamento.

  • Você deve usar o reescritor binário para a imposição em tempo de execução dessa invariável.

  • Invariáveis são definidos condicionalmente no CONTRACTS FULL símbolo. Durante a verificação em tempo de execução, os invariáveis são verificados no final de cada método público. Se um invariável mencionar um método público na mesma classe, a verificação invariável que normalmente aconteceria no final desse método público será desabilitada e verificada somente no final da chamada de método mais externa para essa classe. Isso também acontece se a classe for inserida novamente devido a uma chamada a um método em outra classe.

Aplica-se a