Share via


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 有條件地定義。 在執行階段檢查期間,會在每個公用方法的結尾檢查非變異值。 如果非變異在相同類別中提及公用方法,則會停用該公用方法結尾通常會發生的非變異檢查,並且只在最外層方法呼叫該類別的結尾檢查。 如果因為呼叫另一個類別上的方法而重新輸入此類別,也會進行這項檢查。

適用於