Contract 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
包含靜態方法來表示程序合約,例如前置條件、後置條件和物件不因變數。
public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
- 繼承
-
Contract
備註
程式代碼合約類別可讓您在程式代碼中指定前置條件、後置條件和物件不因變數。 先決條件是輸入方法或屬性時必須符合的需求。 後置條件描述方法或屬性代碼結束時的預期。 物件不變量描述沒有條件問題的類別的預期狀態。 如需前置條件、後置條件和物件不因變數的詳細資訊,請參閱 程式代碼合約。
如需使用程式代碼合約的工具和詳細指示,請參閱Visual Studio Marketplace上的 程式代碼合約。
重要
您必須使用二進位重寫器來插入合約的運行時間強制執行。 否則,Contract.Ensures 方法等合約只能以靜態方式測試,而且如果違反合約,則不會在運行時間擲回例外狀況。 您可以從 Visual Studio Marketplace 上的 程式代碼合約 下載二進位重寫工具 CCRewrite。 CCRewrite 隨附 Visual Studio 載入巨集,可讓您從專案 [屬性] 頁面啟用運行時間合約強制執行。 二進位重寫器和 Visual Studio 載入巨集不會隨附於 Visual Studio 2010 或 Windows SDK。
方法
Assert(Boolean, String) |
檢查條件;如果條件 |
Assert(Boolean) |
檢查條件;如果條件 |
Assume(Boolean, String) |
指示程式代碼分析工具假設條件 |
Assume(Boolean) |
指示程式代碼分析工具假設指定的條件是 |
EndContractBlock() |
當方法的合約只包含 |
Ensures(Boolean, String) |
指定所提供結束條件的後置條件合約,以及條件 |
Ensures(Boolean) |
指定封入方法或屬性的後置條件合約。 |
EnsuresOnThrow<TException>(Boolean, String) |
根據提供的例外狀況和條件,指定封入方法或屬性的條件 |
EnsuresOnThrow<TException>(Boolean) |
根據提供的例外狀況和條件,指定封入方法或屬性的後置條件合約。 |
Exists(Int32, Int32, Predicate<Int32>) |
判斷指定之測試是否為 true,適用於整數範圍內的任何整數。 |
Exists<T>(IEnumerable<T>, Predicate<T>) |
判斷專案集合內的專案是否存在於函式內。 |
ForAll(Int32, Int32, Predicate<Int32>) |
判斷特定條件是否對指定範圍中的所有整數有效。 |
ForAll<T>(IEnumerable<T>, Predicate<T>) |
判斷集合中的所有專案是否存在於函式內。 |
Invariant(Boolean, String) |
指定封入方法或屬性的不變異合約,並在合約的條件失敗時顯示訊息。 |
Invariant(Boolean) |
指定封入方法或屬性的不變異合約。 |
OldValue<T>(T) |
表示值,因為它們是在方法或屬性的開頭。 |
Requires(Boolean, String) |
指定封入方法或屬性的前置條件合約,並在合約的條件失敗時顯示訊息。 |
Requires(Boolean) |
指定封入方法或屬性的前置條件合約。 |
Requires<TException>(Boolean, String) |
指定封入方法或屬性的前置條件合約,如果合約的條件失敗,則會擲回具有所提供訊息的例外狀況。 |
Requires<TException>(Boolean) |
指定封入方法或屬性的前置條件合約,並在合約的條件失敗時擲回例外狀況。 |
Result<T>() |
表示方法或屬性的傳回值。 |
ValueAtReturn<T>(T) |
表示從方法傳回時, |
事件
ContractFailed |
當合約失敗時發生。 |