Contract.Invariant 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定封入方法或屬性的合約。
多載
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
有條件地定義。 在執行階段檢查期間,會在每個公用方法的結尾檢查非變異值。 如果非變異在相同類別中提及公用方法,則會停用該公用方法結尾的不變異檢查,並只在最外層方法呼叫的結尾檢查該類別。 如果因為呼叫另一個類別上的方法而重新輸入此類別,也會進行這項檢查。
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應