Contract.Invariant Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa kontrakt dla otaczającej metody lub właściwości.
Przeciążenia
Invariant(Boolean) |
Określa niezmienny kontrakt dla otaczającej metody lub właściwości. |
Invariant(Boolean, String) |
Określa niezmienny kontrakt dla otaczającej metody lub właściwości i wyświetla komunikat, jeśli warunek kontraktu nie powiedzie się. |
Invariant(Boolean)
- Źródło:
- Contracts.cs
- Źródło:
- Contracts.cs
- Źródło:
- Contracts.cs
Określa niezmienny kontrakt dla otaczającej metody lub właściwości.
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
Wyrażenie warunkowe do przetestowania.
- Atrybuty
Uwagi
Invariant kontrakty są zawarte w metodzie, która jest identyfikowana przez ContractInvariantMethodAttribute atrybut ; zazwyczaj metoda ma nazwę ObjectInvariant
.
Ten kontrakt można określić tylko w dedykowanej niezmiennej metodzie, która jest zadeklarowana w klasie. Jeśli metoda nie jest zapieczętowana, powinna odwoływać się tylko do chronionych elementów członkowskich, a nie prywatnych elementów członkowskich, aby podklasy mogły zachować niezmienne.
Ten kontrakt nie jest udostępniany klientom; w związku z tym może odwoływać się do elementów członkowskich, które są mniej widoczne niż metoda otaczania.
Należy użyć binarnego ponownego tworzenia w celu wymuszania tego niezmiennego w czasie wykonywania.
Niezmienności są definiowane warunkowo na podstawie obecności symbolu
CONTRACTS FULL
. Podczas sprawdzania czasu wykonywania zmienne są sprawdzane na końcu każdej metody publicznej. Jeśli niezmienna metoda publiczna jest wymieniona w tej samej klasie, niezmienne sprawdzenie, które zwykle miało miejsce na końcu tej metody publicznej, jest wyłączone i sprawdzane tylko na końcu najbardziej zewnętrznego wywołania metody do tej klasy. Dzieje się tak również w przypadku ponownego wprowadzenia klasy z powodu wywołania metody w innej klasie.
Dotyczy
Invariant(Boolean, String)
- Źródło:
- Contracts.cs
- Źródło:
- Contracts.cs
- Źródło:
- Contracts.cs
Określa niezmienny kontrakt dla otaczającej metody lub właściwości i wyświetla komunikat, jeśli warunek kontraktu nie powiedzie się.
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
Wyrażenie warunkowe do przetestowania.
- userMessage
- String
Komunikat do wyświetlenia, jeśli warunek to false
.
- Atrybuty
Uwagi
Invariant kontrakty są zawarte w metodzie, która jest identyfikowana przez ContractInvariantMethodAttribute atrybut ; zazwyczaj metoda ma nazwę ObjectInvariant
.
Ten kontrakt można określić tylko w dedykowanej niezmiennej metodzie, która jest zadeklarowana w klasie.
Ten kontrakt nie jest udostępniany klientom; w związku z tym może odwoływać się do elementów członkowskich, które są mniej widoczne niż metoda otaczania.
Należy użyć binarnego ponownego tworzenia w celu wymuszania tego niezmiennego w czasie wykonywania.
Zmienne są definiowane warunkowo na symbolu
CONTRACTS FULL
. Podczas sprawdzania czasu wykonywania zmienne są sprawdzane na końcu każdej metody publicznej. Jeśli niezmienna metoda publiczna jest wymieniona w tej samej klasie, niezmienne sprawdzenie, które zwykle miało miejsce na końcu tej metody publicznej, jest wyłączone i sprawdzane tylko na końcu najbardziej zewnętrznego wywołania metody do tej klasy. Dzieje się tak również w przypadku ponownego wprowadzenia klasy z powodu wywołania metody w innej klasie.