Comparteix a través de


Contract.Invariant Método

Definición

Especifica un contrato para un método o propiedad envolvente.

Sobrecargas

Invariant(Boolean)

Especifica un contrato invariable para el método o propiedad envolvente.

Invariant(Boolean, String)

Especifica un contrato invariable para el método o propiedad envolvente, y muestra un mensaje si la condición del contrato da error.

Invariant(Boolean)

Source:
Contracts.cs
Source:
Contracts.cs
Source:
Contracts.cs

Especifica un contrato invariable para el método o propiedad envolvente.

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

Expresión condicional que se va a probar.

Atributos

Comentarios

Invariant los contratos se encuentran dentro de un método identificado por el ContractInvariantMethodAttribute atributo ; normalmente, el método se denomina ObjectInvariant.

  • Este contrato solo se puede especificar en un método invariable dedicado que se declara en una clase. Si el método no está sellado, debe hacer referencia solo a miembros protegidos, no a miembros privados, de modo que las subclases puedan estar seguros de mantener las invariables.

  • Este contrato no está expuesto a los clientes; por lo tanto, puede hacer referencia a miembros que son menos visibles que el método envolvente.

  • Debe usar la reescritura binaria para la aplicación en tiempo de ejecución de esta invariable.

  • Las invariables se definen condicionalmente en función de la presencia del CONTRACTS FULL símbolo. Durante la comprobación en tiempo de ejecución, las invariantes se comprueban al final de cada método público. Si una invariable menciona un método público en la misma clase, la comprobación invariable que normalmente se produciría al final de ese método público se deshabilita y solo se comprueba al final de la llamada al método más externo a esa clase. Esto también ocurre si la clase se vuelve a escribir debido a una llamada a un método en otra clase.

Se aplica a

Invariant(Boolean, String)

Source:
Contracts.cs
Source:
Contracts.cs
Source:
Contracts.cs

Especifica un contrato invariable para el método o propiedad envolvente, y muestra un mensaje si la condición del contrato da error.

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

Expresión condicional que se va a probar.

userMessage
String

Mensaje que se va a mostrar si la condición es false.

Atributos

Comentarios

Invariant los contratos se encuentran dentro de un método identificado por el ContractInvariantMethodAttribute atributo ; normalmente, el método se denomina ObjectInvariant.

  • Este contrato solo se puede especificar en un método invariable dedicado que se declara en una clase.

  • Este contrato no está expuesto a los clientes; por lo tanto, puede hacer referencia a miembros que son menos visibles que el método envolvente.

  • Debe usar la reescritura binaria para la aplicación en tiempo de ejecución de esta invariable.

  • Las invariables se definen condicionalmente en el CONTRACTS FULL símbolo. Durante la comprobación en tiempo de ejecución, las invariantes se comprueban al final de cada método público. Si una invariable menciona un método público en la misma clase, la comprobación invariable que normalmente se produciría al final de ese método público se deshabilita y solo se comprueba al final de la llamada al método más externo a esa clase. Esto también ocurre si la clase se vuelve a escribir debido a una llamada a un método en otra clase.

Se aplica a