Contract Klasse
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.
Enthält statische Methoden zum Darstellen von Programmverträgen, z. B. Vorbedingungen, Nachbedingungen und Objektinvarianten.
public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
- Vererbung
-
Contract
Hinweise
Mit Codevertragsklassen können Sie Vorbedingungen, Postbedingungen und Objektinvarianten in Ihrem Code angeben. Vorbedingungen sind Anforderungen, die beim Eingeben einer Methode oder Eigenschaft erfüllt werden müssen. Nachbedingungen beschreiben Erwartungen zu dem Zeitpunkt, zu dem die Methode oder der Eigenschaftencode beendet wird. Objektinvarianten beschreiben den erwarteten Zustand für eine Klasse ohne Bedingungsprobleme. Weitere Informationen zu Vorbedingungen, Postbedingungen und Objektinvarianten finden Sie unter Codeverträge.
Tools und ausführliche Anweisungen zum Verwenden von Codeverträgen finden Sie unter Code Contracts on the Visual Studio Marketplace.
Wichtig
Sie müssen einen binären Rewriter verwenden, um die Laufzeiterzwingung von Verträgen einzufügen. Andernfalls können Verträge wie die Contract.Ensures Methode nur statisch getestet werden und lösen während der Laufzeit keine Ausnahmen aus, wenn ein Vertrag verletzt wird. Sie können den binären Rewriter CCRewrite aus Code Contracts auf dem Visual Studio Marketplace herunterladen. CCRewrite enthält ein Visual Studio-Add-In, mit dem Sie die Laufzeitvertragserzwingung auf der Seite "Projekteigenschaften" aktivieren können. Der binäre Rewriter und das Visual Studio-Add-In werden nicht mit Visual Studio 2010 oder dem Windows SDK geliefert.
Methoden
Assert(Boolean) |
Überprüft eine Bedingung. Wenn die Bedingung |
Assert(Boolean, String) |
Überprüft eine Bedingung. Wenn die Bedingung |
Assume(Boolean) |
Weist Codeanalysetools an, für die angegebene Bedingung das Ergebnis |
Assume(Boolean, String) |
Weist Codeanalysetools an, für eine Bedingung das Ergebnis |
EndContractBlock() |
Markiert das Ende des Vertragsabschnitts, wenn die Verträge einer Methode nur Vorbedingungen in Form vom |
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 |
EnsuresOnThrow<TException>(Boolean) |
Gibt einen Nachbedingungsvertrag für die einschließende Methode oder Eigenschaft auf Grundlage der angegebenen Ausnahme und Bedingung an. |
EnsuresOnThrow<TException>(Boolean, String) |
Gibt auf Grundlage der angegebenen Ausnahme und Bedingung einen Nachbedingungsvertrag für die Ausnahme und Bedingung und eine Meldung an, die angezeigt wird, wenn die Bedingung |
Exists(Int32, Int32, Predicate<Int32>) |
Bestimmt, ob ein bestimmter Test für jede ganze Zahl in einem Bereich von ganzen Zahlen den den Wert true zurückgibt. |
Exists<T>(IEnumerable<T>, Predicate<T>) |
Bestimmt, ob ein Element in einer Auflistung von Elementen in einer Funktion vorhanden ist. |
ForAll(Int32, Int32, Predicate<Int32>) |
Bestimmt, ob eine angegebene Bedingung für alle ganzen Zahlen in einem angegebenen Bereich gültig ist. |
ForAll<T>(IEnumerable<T>, Predicate<T>) |
Bestimmt, ob alle Elemente in einer Auflistung in einer Funktion vorhanden sind. |
Invariant(Boolean) |
Gibt einen invarianten Vertrag für die einschließende Methode oder Eigenschaft an. |
Invariant(Boolean, String) |
Gibt einen invarianten Vertrag für die einschließende Methode oder Eigenschaft an und zeigt eine Meldung an, wenn die Bedingung für den Vertrag nicht erfüllt wird. |
OldValue<T>(T) |
Stellt Werte in ihrem Zustand beim Starten einer Methode oder einer Eigenschaft dar. |
Requires(Boolean) |
Gibt einen Vorbedingungsvertrag für die einschließende Methode oder Eigenschaft an. |
Requires(Boolean, String) |
Gibt einen Vorbedingungsvertrag für die einschließende Methode oder Eigenschaft an, und zeigt eine Meldung an, wenn die Bedingung für den Vertrag nicht erfüllt wird. |
Requires<TException>(Boolean) |
Gibt einen Vorbedingungsvertrag für die einschließende Methode oder Eigenschaft an, und löst eine Ausnahme aus, wenn die Bedingung für den Vertrag nicht erfüllt wird. |
Requires<TException>(Boolean, String) |
Gibt einen Vorbedingungsvertrag für die einschließende Methode oder Eigenschaft an, und löst eine Ausnahme mit der angegebenen Meldung aus, wenn die Bedingung für den Vertrag nicht erfüllt wird. |
Result<T>() |
Stellt den Rückgabewert einer Methode oder Eigenschaft dar. |
ValueAtReturn<T>(T) |
Stellt den von einer Methode zurückgegebenen endgültigen Wert (Ausgabewert) eines |
Ereignisse
ContractFailed |
Tritt auf, wenn ein Vertrag fehlschlägt. |