Contract.Ensures Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает контракт postcondition для заключающего метода или свойства.
Перегрузки
| Имя | Описание |
|---|---|
| Ensures(Boolean) |
Указывает контракт postcondition для заключающего метода или свойства. |
| Ensures(Boolean, String) |
Указывает контракт postcondition для предоставленного условия выхода и сообщение для отображения, если условие равно |
Ensures(Boolean)
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
Указывает контракт postcondition для заключающего метода или свойства.
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 при обычном возвращении метода или свойства включающего метода.
Этот вызов метода должен находиться в начале метода или свойства перед любым другим кодом.
Вы должны использовать двоичный перезапись (доступный в Code Contracts в Visual Studio Marketplace) для применения этого послекондиции во время выполнения.
Применяется к
Ensures(Boolean, String)
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
- Исходный код:
- Contracts.cs
Указывает контракт postcondition для предоставленного условия выхода и сообщение для отображения, если условие равно 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 при обычном возвращении метода или свойства включающего метода.
Этот вызов метода должен находиться в начале метода или свойства перед любым другим кодом.
Этот контракт предоставляется клиентам; Таким образом, он должен ссылаться только на элементы, которые по крайней мере как видимые, как метод заключения.
Вы должны использовать двоичный перезапись (доступный в Code Contracts в Visual Studio Marketplace) для применения этого послекондиции во время выполнения.
Если
userMessageэто не константный строковый литерал, контракт может быть не понят средствами.