Share via


Contract.Invariant Metoda

Definice

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 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ě.

  • 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ě.

Platí pro