Contract.Ensures Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt einen Nachbedingungsvertrag für die einschließende Methode oder Eigenschaft an.
Überlädt
Ensures(Boolean) |
Gibt einen Nachbedingungsvertrag für die einschließende Methode oder Eigenschaft an. |
Ensures(Boolean, String) |
Gibt einen Nachbedingungsvertrag für eine vorhandene Exit-Bedingung und eine Meldung an, die angezeigt wird, wenn die Bedingung |
Ensures(Boolean)
- Quelle:
- Contracts.cs
- Quelle:
- Contracts.cs
- Quelle:
- Contracts.cs
Gibt einen Nachbedingungsvertrag für die einschließende Methode oder Eigenschaft an.
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)
Parameter
- condition
- Boolean
Der bedingte Ausdruck, der getestet werden soll. Der Ausdruck kann folgende Werte enthalten: OldValue<T>(T), ValueAtReturn<T>(T) und Result<T>().
- Attribute
Beispiele
Im folgenden Beispiel wird gezeigt, wie die Ensures -Methode verwendet wird, um sicherzustellen, dass ein erwarteter Wert zurückgegeben wird. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die ContractClassAttribute-Klasse bereitgestellt wird.
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
Hinweise
Der condition
Parameter gibt eine Postbedingung an, die erwartet wird true
, wenn die einschließende Methode oder Eigenschaft normal zurückgegeben wird.
Dieser Methodenaufruf muss am Anfang einer Methode oder Eigenschaft vor jedem anderen Code stehen.
Sie müssen den binären Rewriter (verfügbar unter Code Contracts im Visual Studio Marketplace) für die Laufzeiterzwingung dieser Postcondition verwenden.
Gilt für:
Ensures(Boolean, String)
- Quelle:
- Contracts.cs
- Quelle:
- Contracts.cs
- Quelle:
- Contracts.cs
Gibt einen Nachbedingungsvertrag für eine vorhandene Exit-Bedingung und eine Meldung an, die angezeigt wird, wenn die Bedingung false
ist.
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)
Parameter
- condition
- Boolean
Der bedingte Ausdruck, der getestet werden soll. Der Ausdruck kann folgende Werte enthalten: OldValue<T>(T) und Result<T>().
- userMessage
- String
Die Meldung, die angezeigt wird, wenn der Ausdruck nicht true
ist.
- Attribute
Hinweise
Der condition
Parameter gibt eine Postbedingung an, die erwartet wird true
, wenn die einschließende Methode oder Eigenschaft normal zurückgegeben wird.
Dieser Methodenaufruf muss am Anfang einer Methode oder Eigenschaft vor jedem anderen Code stehen.
Dieser Vertrag ist für Clients verfügbar gemacht; Daher darf sie nur auf Member verweisen, die mindestens so sichtbar sind wie die einschließende Methode.
Sie müssen den binären Rewriter (verfügbar unter Code Contracts im Visual Studio Marketplace) für die Laufzeiterzwingung dieser Postcondition verwenden.
Wenn
userMessage
kein konstantes Zeichenfolgenliteral ist, wird der Vertrag von Tools möglicherweise nicht verstanden.