Contract.Invariant Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje kontrakt pro ohraničující metodu nebo vlastnost.
Přetížení
Invariant(Boolean) |
Určuje invariantní kontrakt pro ohraničující metodu nebo vlastnost. |
Invariant(Boolean, String) |
Určuje invariantní kontrakt pro ohraničující metodu nebo vlastnost a zobrazí zprávu, pokud podmínka kontraktu selže. |
Invariant(Boolean)
- Zdroj:
- Contracts.cs
- Zdroj:
- Contracts.cs
- Zdroj:
- Contracts.cs
Určuje invariantní kontrakt pro ohraničující metodu nebo vlastnost.
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)
Parametry
- condition
- Boolean
Podmíněný výraz, který se má otestovat.
- Atributy
Poznámky
Invariant kontrakty jsou obsaženy v metodě, která je identifikovaná atributem ContractInvariantMethodAttribute ; metoda má obvykle název ObjectInvariant
.
Tento kontrakt lze zadat pouze ve vyhrazené invariantní metodě, která je deklarována ve třídě. Pokud metoda není zapečetěna, měla by odkazovat pouze na chráněné členy, nikoli na soukromé členy, aby podtřídy mohly udržovat invarianty.
Tato smlouva není vystavena klientům; proto může odkazovat na členy, které jsou méně viditelné než ohraničující metoda.
K vynucení této invariantní invarianty je nutné použít binární rewriter.
Invarianty jsou podmíněně definovány na základě přítomnosti symbolu
CONTRACTS FULL
. Během kontroly za běhu se na konci každé veřejné metody kontrolují invarianty. Pokud invariant zmíní veřejnou metodu ve stejné třídě, invariantní kontrola, která by normálně proběhla na konci veřejné metody, je zakázána a zkontrolována pouze na konci vnější volání metody této třídy. K tomu dochází také v případě, že je třída znovu zadána kvůli volání metody v jiné třídě.
Platí pro
Invariant(Boolean, String)
- Zdroj:
- Contracts.cs
- Zdroj:
- Contracts.cs
- Zdroj:
- Contracts.cs
Určuje invariantní kontrakt pro ohraničující metodu nebo vlastnost a zobrazí zprávu, pokud podmínka kontraktu selže.
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)
Parametry
- condition
- Boolean
Podmíněný výraz, který se má otestovat.
- userMessage
- String
Zpráva, která se má zobrazit, pokud je false
podmínka .
- Atributy
Poznámky
Invariant kontrakty jsou obsaženy v metodě, která je identifikovaná atributem ContractInvariantMethodAttribute ; metoda má obvykle název ObjectInvariant
.
Tento kontrakt lze zadat pouze ve vyhrazené invariantní metodě, která je deklarována ve třídě.
Tato smlouva není vystavena klientům; proto může odkazovat na členy, které jsou méně viditelné než ohraničující metoda.
K vynucení této invariantní invarianty je nutné použít binární rewriter.
Invarianty jsou podmíněně definovány na symbolu
CONTRACTS FULL
. Během kontroly za běhu se na konci každé veřejné metody kontrolují invarianty. Pokud invariant zmíní veřejnou metodu ve stejné třídě, invariantní kontrola, která by normálně proběhla na konci veřejné metody, je zakázána a zkontrolována pouze na konci vnější volání metody této třídy. K tomu dochází také v případě, že je třída znovu zadána kvůli volání metody v jiné třídě.