Contract.Invariant Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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 FULLnä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.