Contract.Invariant Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica um contrato para um método de encerramento ou propriedade.
Sobrecargas
| Name | Description |
|---|---|
| Invariant(Boolean) |
Especifica um contrato invariante para o método ou propriedade de encerramento. |
| Invariant(Boolean, String) |
Especifica um contrato invariante para o método ou propriedade de anexo, e apresenta uma mensagem se a condição do contrato falhar. |
Invariant(Boolean)
Especifica um contrato invariante para o método ou propriedade de encerramento.
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 para testar.
- Atributos
Observações
Invariant Os contratos estão contidos dentro de um método identificado pelo ContractInvariantMethodAttribute atributo; normalmente, o método é chamado ObjectInvariant.
Este contrato só pode ser especificado num método invariante dedicado que seja declarado numa classe. Se o método não estiver selado, deve referir-se apenas a membros protegidos, não a membros privados, para que as subclasses possam garantir que mantêm os invariantes.
Este contrato não está exposto aos clientes; Portanto, pode referenciar membros menos visíveis do que o método de encerramento.
Deve usar o reescritor binário para a aplicação em tempo de execução deste invariante.
Os invariantes são definidos condicionalmente com base na presença do
CONTRACTS FULLsímbolo. Durante a verificação em tempo de execução, os invariantes são verificados no final de cada método público. Se um invariante mencionar um método público na mesma classe, a verificação invariante que normalmente aconteceria no final desse método público é desativada e verificada apenas no final da chamada de método mais externa para essa classe. Isso também acontece se a classe for reinserida devido a uma chamada para um método em outra classe.
Aplica-se a
Invariant(Boolean, String)
Especifica um contrato invariante para o método ou propriedade de anexo, e apresenta 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 para testar.
- userMessage
- String
A mensagem a mostrar se a condição for false.
- Atributos
Observações
Invariant Os contratos estão contidos dentro de um método identificado pelo ContractInvariantMethodAttribute atributo; normalmente, o método é chamado ObjectInvariant.
Este contrato só pode ser especificado num método invariante dedicado que seja declarado numa classe.
Este contrato não está exposto aos clientes; Portanto, pode referenciar membros menos visíveis do que o método de encerramento.
Deve usar o reescritor binário para a aplicação em tempo de execução deste invariante.
Os invariantes são definidos condicionalmente no
CONTRACTS FULLsímbolo. Durante a verificação em tempo de execução, os invariantes são verificados no final de cada método público. Se um invariante mencionar um método público na mesma classe, a verificação invariante que normalmente aconteceria no final desse método público é desativada e verificada apenas no final da chamada de método mais externa para essa classe. Isso também acontece se a classe for reinserida devido a uma chamada para um método em outra classe.