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) |
檢查條件,且如果條件為 |
Assert(Boolean, String) |
檢查條件。如果條件為 |
Assume(Boolean) |
指示程式碼分析工具假設指定的條件為 |
Assume(Boolean, String) |
指示程式碼分析工具假設條件為 |
EndContractBlock() |
當方法的合約僅包含 |
Ensures(Boolean) |
指定封入方法或屬性的後置條件合約。 |
Ensures(Boolean, String) |
指定提供之結束條件的後置條件合約,以及在條件為 |
EnsuresOnThrow<TException>(Boolean) |
根據所提供的例外狀況和條件,針對封入方法或屬性指定後置條件合約。 |
EnsuresOnThrow<TException>(Boolean, String) |
針對封入方法或屬性來指定後置條件合約,和當條件是 |
Exists(Int32, Int32, Predicate<Int32>) |
判斷整數範圍內是否有任何整數使指定的測試成立。 |
Exists<T>(IEnumerable<T>, Predicate<T>) |
判斷項目集合內的項目是否出現在函式中。 |
ForAll(Int32, Int32, Predicate<Int32>) |
判斷特定條件對於指定之範圍內的所有整數是否有效。 |
ForAll<T>(IEnumerable<T>, Predicate<T>) |
判斷集合內的所有項目是否都出現在函式中。 |
Invariant(Boolean) |
指定封入方法或屬性的非變異合約。 |
Invariant(Boolean, String) |
指定封入方法或屬性的非變異合約,並在合約的條件失敗時顯示訊息。 |
OldValue<T>(T) |
表示其在方法或屬性開始時的值。 |
Requires(Boolean) |
指定封入方法或屬性的前置條件合約。 |
Requires(Boolean, String) |
指定封入方法或屬性的前置條件合約,並在合約的條件失敗時顯示訊息。 |
Requires<TException>(Boolean) |
指定封入方法或屬性的前置條件合約,並在合約的條件失敗時擲回例外狀況。 |
Requires<TException>(Boolean, String) |
指定封入方法或屬性的前置條件合約,並在合約的條件失敗時擲回包含所提供訊息的例外狀況。 |
Result<T>() |
表示方法或屬性的傳回值。 |
ValueAtReturn<T>(T) |
表示從方法傳回時的最後 (輸出) |
事件
ContractFailed |
發生於合約失敗時。 |