Contract.Invariant Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica um contrato para um método ou uma propriedade delimitadora.
Sobrecargas
Invariant(Boolean) |
Especifica um contrato invariável para o método ou a propriedade delimitadora. |
Invariant(Boolean, String) |
Especifica um contrato invariável para a propriedade ou o método delimitador e exibe uma mensagem se a condição para o contrato falhar. |
Invariant(Boolean)
- Origem:
- Contracts.cs
- Origem:
- Contracts.cs
- Origem:
- Contracts.cs
Especifica um contrato invariável para o método ou a propriedade delimitadora.
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 é chamado ObjectInvariant
de .
Esse contrato só pode ser especificado em um método invariável dedicado declarado em uma classe . Se o método não estiver selado, ele deverá se referir apenas a membros protegidos, não a membros privados, para que as subclasses possam manter as invariáveis.
Esse contrato não é exposto aos 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, as invariáveis são verificadas ao final de cada método público. Se um invariável mencionar um método público na mesma classe, o marcar invariável que normalmente aconteceria no final desse método público será desabilitado e verificado somente no final da chamada de método mais externa para essa classe. Isso também ocorrerá se a classe for inserida novamente devido a uma chamada a um método em outra classe.
Aplica-se a
Invariant(Boolean, String)
- Origem:
- Contracts.cs
- Origem:
- Contracts.cs
- Origem:
- Contracts.cs
Especifica um contrato invariável para a propriedade ou o método delimitador e exibe uma mensagem se a condição para o 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")]
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 é chamado ObjectInvariant
de .
Esse contrato só pode ser especificado em um método invariável dedicado declarado em uma classe .
Esse contrato não é exposto aos 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, as invariáveis são verificadas ao final de cada método público. Se um invariável mencionar um método público na mesma classe, o marcar invariável que normalmente aconteceria no final desse método público será desabilitado e verificado somente no final da chamada de método mais externa para essa classe. Isso também ocorrerá se a classe for inserida novamente devido a uma chamada a um método em outra classe.