Freigeben über


Contract Klasse

Definition

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 false ist, wird die festgelegte Ausweitungsrichtlinie für den Analyzer angewendet.

Assert(Boolean, String)

Überprüft eine Bedingung. Wenn die Bedingung false ist, wird die vom Analyzer festgelegte Ausweitungsrichtlinie angewendet und die angegebene Meldung angezeigt.

Assume(Boolean)

Weist Codeanalysetools an, für die angegebene Bedingung das Ergebnis true anzunehmen, auch wenn nicht statisch belegt werden kann, dass sie immer true ist.

Assume(Boolean, String)

Weist Codeanalysetools an, für eine Bedingung das Ergebnis true anzunehmen, auch wenn nicht statisch belegt werden kann, dass sie immer true ist, und zeigt eine Meldung an, wenn die Annahme fehlschlägt.

EndContractBlock()

Markiert das Ende des Vertragsabschnitts, wenn die Verträge einer Methode nur Vorbedingungen in Form vom if-then-throw enthalten.

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 false ist.

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 false ist.

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 out-Parameters dar.

Ereignisse

ContractFailed

Tritt auf, wenn ein Vertrag fehlschlägt.

Gilt für: