Contract.Invariant 方法

定義

指定封入方法或屬性的合約。

多載

Invariant(Boolean)

指定封入方法或屬性的非變異合約。

Invariant(Boolean, String)

指定封入方法或屬性的非變異合約,並在合約的條件失敗時顯示訊息。

Invariant(Boolean)

來源:
Contracts.cs
來源:
Contracts.cs
來源:
Contracts.cs

指定封入方法或屬性的非變異合約。

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)

參數

condition
Boolean

要測試的條件運算式。

屬性

備註

Invariant 合約包含在 屬性所識別 ContractInvariantMethodAttribute 的方法內;通常,方法的名稱為 ObjectInvariant

  • 此合約只能在類別上宣告的專用非變異方法中指定。 如果方法不是密封的,它應該只參考受保護的成員,而不是私用成員,以便確保子類別能夠維護不變數。

  • 此合約不會公開給用戶端;因此,它可能會參考小於封入方法可見的成員。

  • 您必須使用二進位重寫器來強制執行此不可變的執行時間。

  • 不變數會根據符號的存在 CONTRACTS FULL 而有條件地定義。 在執行階段檢查期間,會在每個公用方法的結尾檢查非變異值。 如果非變異在相同類別中提及公用方法,則會停用該公用方法結尾的不變異檢查,並只在最外層方法呼叫的結尾檢查該類別。 如果因為呼叫另一個類別上的方法而重新輸入此類別,也會進行這項檢查。

適用於

Invariant(Boolean, String)

來源:
Contracts.cs
來源:
Contracts.cs
來源:
Contracts.cs

指定封入方法或屬性的非變異合約,並在合約的條件失敗時顯示訊息。

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)

參數

condition
Boolean

要測試的條件運算式。

userMessage
String

如果條件為 false 就會顯示訊息。

屬性

備註

Invariant 合約包含在 屬性所識別 ContractInvariantMethodAttribute 的方法內;通常,方法的名稱為 ObjectInvariant

  • 此合約只能在類別上宣告的專用非變異方法中指定。

  • 此合約不會公開給用戶端;因此,它可能會參考小於封入方法可見的成員。

  • 您必須使用二進位重寫器來強制執行此不可變的執行時間。

  • 不變異項會在符號上 CONTRACTS FULL 有條件地定義。 在執行階段檢查期間,會在每個公用方法的結尾檢查非變異值。 如果非變異在相同類別中提及公用方法,則會停用該公用方法結尾的不變異檢查,並只在最外層方法呼叫的結尾檢查該類別。 如果因為呼叫另一個類別上的方法而重新輸入此類別,也會進行這項檢查。

適用於