Contract.Invariant Metoda

Definice

Určuje kontrakt pro nadřazenou 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 pro kontrakt 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á testovat.

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 soukromé členy, aby podtřídy mohly být jisti zachování invarianty.

  • Tento kontrakt není vystaven klientům; proto může odkazovat na členy, které jsou méně viditelné než ohraničující metoda.

  • Pro vynucování této invariantní funkce za běhu musíte použít binární přepis.

  • 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 této veřejné metody, je zakázána a kontrolová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 pro kontrakt 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á testovat.

userMessage
String

Zpráva, která se má zobrazit, pokud je falsepodmí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ě.

  • Tento kontrakt není vystaven klientům; proto může odkazovat na členy, které jsou méně viditelné než ohraničující metoda.

  • Pro vynucování této invariantní funkce za běhu musíte použít binární přepis.

  • Invarianty jsou na symbolu definovány podmíněně 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 této veřejné metody, je zakázána a kontrolová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