Contract.Ensures 方法

定義

指定封入方法或屬性的後置條件合約。

多載

Ensures(Boolean)

指定封入方法或屬性的後置條件合約。

Ensures(Boolean, String)

指定提供之結束條件的後置條件合約,以及在條件為 false 時所要顯示的訊息。

Ensures(Boolean)

指定封入方法或屬性的後置條件合約。

public:
 static void Ensures(bool condition);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Ensures (bool condition);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Ensures : bool -> unit
Public Shared Sub Ensures (condition As Boolean)

參數

condition
Boolean

要測試的條件運算式。 運算式可以包含 OldValue<T>(T)ValueAtReturn<T>(T)Result<T>() 值。

屬性

範例

下列範例示範如何使用 Ensures 方法來確保傳回預期的值。 此程式碼範例是針對 類別提供的較大範例的 ContractClassAttribute 一部分。

int IArray.Add(Object value)
{
    // Returns the index in which an item was inserted.
    Contract.Ensures(Contract.Result<int>() >= -1);
    Contract.Ensures(Contract.Result<int>() < ((IArray)this).Count);
    return default(int);
}
Function Add(ByVal value As Object) As Integer Implements IArray.Add
    ' Returns the index in which an item was inserted.
    Contract.Ensures(Contract.Result(Of Integer)() >= -1) '
    Contract.Ensures(Contract.Result(Of Integer)() < CType(Me, IArray).Count) '
    Return 0
    
End Function 'IArray.Add

備註

參數 condition 會指定當封入方法或屬性正常傳回時所 true 預期的後置條件。

  • 這個方法呼叫必須在方法或屬性的開頭,才能進行任何其他程式碼。

  • 您必須使用 Visual Studio Marketplace 程式 代碼合約) 提供的二進位重寫器 (,才能強制執行此後置條件。

適用於

Ensures(Boolean, String)

指定提供之結束條件的後置條件合約,以及在條件為 false 時所要顯示的訊息。

public:
 static void Ensures(bool condition, System::String ^ userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Ensures (bool condition, string userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Ensures (bool condition, string? userMessage);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Ensures : bool * string -> unit
Public Shared Sub Ensures (condition As Boolean, userMessage As String)

參數

condition
Boolean

要測試的條件運算式。 運算式可以包含 OldValue<T>(T)Result<T>() 值。

userMessage
String

當運算式不是 true 時所顯示的訊息。

屬性

備註

參數 condition 會指定當封入方法或屬性正常傳回時所 true 預期的後置條件。

  • 這個方法呼叫必須在方法或屬性的開頭,才能進行任何其他程式碼。

  • 此合約會公開給用戶端;因此,它只能參考至少與封入方法一樣可見的成員。

  • 您必須使用 Visual Studio Marketplace 程式 代碼合約) 提供的二進位重寫器 (,才能強制執行此後置條件。

  • 如果 userMessage 不是常數位符串常值,則工具可能無法瞭解合約。

適用於