Contract.Invariant Metod

Definition

Anger ett kontrakt för en omslutande metod eller egenskap.

Överlagringar

Name Description
Invariant(Boolean)

Anger ett invariant kontrakt för den omslutande metoden eller egenskapen.

Invariant(Boolean, String)

Anger ett invariant kontrakt för den omslutande metoden eller egenskapen och visar ett meddelande om villkoret för kontraktet misslyckas.

Invariant(Boolean)

Anger ett invariant kontrakt för den omslutande metoden eller egenskapen.

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)

Parametrar

condition
Boolean

Villkorsuttrycket som ska testas.

Attribut

Kommentarer

Invariant kontrakt finns i en metod som identifieras av ContractInvariantMethodAttribute attributet. Metoden heter ObjectInvariantvanligtvis .

  • Det här kontraktet kan endast anges i en dedikerad invariant-metod som deklareras för en klass. Om metoden inte är förseglad bör den endast referera till skyddade medlemmar, inte privata medlemmar, så att underklasserna kan vara säkra på att behålla invarianterna.

  • Det här kontraktet är inte exponerat för klienter. Den kan därför referera till medlemmar som är mindre synliga än omslutningsmetoden.

  • Du måste använda den binära skrivmaskinen för körning av den här invarianten.

  • Invarianter definieras villkorligt baserat på symbolens CONTRACTS FULL närvaro. Under körningskontroll kontrolleras invarianter i slutet av varje offentlig metod. Om en invariant nämner en offentlig metod i samma klass inaktiveras den invarianta kontroll som normalt skulle inträffa i slutet av den offentliga metoden och kontrolleras endast i slutet av det yttersta metodanropet till den klassen. Detta inträffar också om klassen anges på nytt på grund av ett anrop till en metod i en annan klass.

Gäller för

Invariant(Boolean, String)

Anger ett invariant kontrakt för den omslutande metoden eller egenskapen och visar ett meddelande om villkoret för kontraktet misslyckas.

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)

Parametrar

condition
Boolean

Villkorsuttrycket som ska testas.

userMessage
String

Meddelandet som ska visas om villkoret är false.

Attribut

Kommentarer

Invariant kontrakt finns i en metod som identifieras av ContractInvariantMethodAttribute attributet. Metoden heter ObjectInvariantvanligtvis .

  • Det här kontraktet kan endast anges i en dedikerad invariant-metod som deklareras för en klass.

  • Det här kontraktet är inte exponerat för klienter. Den kan därför referera till medlemmar som är mindre synliga än omslutningsmetoden.

  • Du måste använda den binära skrivmaskinen för körning av den här invarianten.

  • Invarianter definieras villkorligt för symbolen CONTRACTS FULL . Under körningskontroll kontrolleras invarianter i slutet av varje offentlig metod. Om en invariant nämner en offentlig metod i samma klass inaktiveras den invarianta kontroll som normalt skulle inträffa i slutet av den offentliga metoden och kontrolleras endast i slutet av det yttersta metodanropet till den klassen. Detta inträffar också om klassen anges på nytt på grund av ett anrop till en metod i en annan klass.

Gäller för