Contract Klasse

Definition

Enthält statische Methoden zum Darstellen von Programmverträgen wie Vorbedingungen, Postkonditionen und Objektinvarianten.

public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
Vererbung
Contract

Hinweise

Mithilfe von Codevertragsklassen können Sie Invarianten, Voraussetzungen, Postkonditionen und Objektinvarianten in Ihrem Code angeben. Voraussetzungen sind Anforderungen, die beim Eingeben einer Methode oder Eigenschaft erfüllt werden müssen. Postconditions beschreiben die Erwartungen zum Zeitpunkt des Beendens der Methode oder des Eigenschaftencodes. Objektinvarianten beschreiben den erwarteten Zustand für eine Klasse ohne Bedingungsprobleme. Weitere Informationen zu Voraussetzungen, Postkonditionen und Objektinvarianten finden Sie unter Codeverträge.

Tools und detaillierte Anweisungen zur Verwendung von Codeverträgen finden Sie unter Code Contracts auf dem Visual Studio Marketplace.

Important

Sie müssen eine binäre Schreibmaschine 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 keine Ausnahmen während der Laufzeit aus, wenn ein Vertrag verletzt wird. Sie können den binären Neuautor CCRewrite aus Code Contracts auf dem Visual Studio Marketplace herunterladen. CCRewrite verfügt über ein Visual Studio-Add-In, mit dem Sie die Laufzeitvertragserzwingung über die Seite Properties aktivieren können. Die binäre Schreibmaschine und das Visual Studio-Add-In werden nicht mit Visual Studio 2010 oder dem Windows SDK ausgeliefert.

Methoden

Name Beschreibung
Assert(Boolean, String)

Sucht nach einer Bedingung; wenn die Bedingung lautet false, folgt die vom Analyzer festgelegte Eskalationsrichtlinie und zeigt die angegebene Meldung an.

Assert(Boolean)

Sucht nach einer Bedingung; wenn die Bedingung lautet false, folgt die für die Analyse festgelegte Eskalationsrichtlinie.

Assume(Boolean, String)

Weist Codeanalysetools an, davon auszugehen, dass eine Bedingung true, auch wenn sie nicht statisch nachgewiesen werden kann, immer nachgewiesen werden truekann, und zeigt eine Meldung an, wenn die Annahme fehlschlägt.

Assume(Boolean)

Weist Codeanalysetools an, davon auszugehen, dass die angegebene Bedingung isttrue, auch wenn sie nicht statisch nachgewiesen werden kann.true

EndContractBlock()

Kennzeichnet das Ende des Vertragsabschnitts, wenn die Verträge einer Methode nur Voraussetzungen im if-then-throw Formular enthalten.

Ensures(Boolean, String)

Gibt einen Postcondition-Vertrag für eine bereitgestellte Beendigungsbedingung und eine Meldung an, die angezeigt werden soll, wenn die Bedingung ist false.

Ensures(Boolean)

Gibt einen Postcondition-Vertrag für die eingeschlossene Methode oder Eigenschaft an.

EnsuresOnThrow<TException>(Boolean, String)

Gibt einen Postcondition-Vertrag und eine Meldung an, die angezeigt werden soll, wenn die Bedingung false für die eingeschlossene Methode oder Eigenschaft gilt, basierend auf der bereitgestellten Ausnahme und Bedingung.

EnsuresOnThrow<TException>(Boolean)

Gibt einen Postcondition-Vertrag für die eingeschlossene Methode oder Eigenschaft basierend auf der bereitgestellten Ausnahme und Bedingung an.

Exists(Int32, Int32, Predicate<Int32>)

Bestimmt, ob ein angegebener Test für eine ganze Zahl innerhalb eines Bereichs ganzzahliger Zahlen wahr ist.

Exists<T>(IEnumerable<T>, Predicate<T>)

Bestimmt, ob ein Element innerhalb einer Auflistung von Elementen innerhalb einer Funktion vorhanden ist.

ForAll(Int32, Int32, Predicate<Int32>)

Bestimmt, ob eine bestimmte 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 innerhalb einer Funktion vorhanden sind.

Invariant(Boolean, String)

Gibt einen invarianten Vertrag für die eingeschlossene Methode oder Eigenschaft an und zeigt eine Meldung an, wenn die Bedingung für den Vertrag fehlschlägt.

Invariant(Boolean)

Gibt einen invarianten Vertrag für die eingeschlossene Methode oder Eigenschaft an.

OldValue<T>(T)

Stellt Werte dar, wie sie zu Beginn einer Methode oder Eigenschaft waren.

Requires(Boolean, String)

Gibt einen Vorbedingungsvertrag für die eingeschlossene Methode oder Eigenschaft an und zeigt eine Meldung an, wenn die Bedingung für den Vertrag fehlschlägt.

Requires(Boolean)

Gibt einen Vorbedingungsvertrag für die eingeschlossene Methode oder Eigenschaft an.

Requires<TException>(Boolean, String)

Gibt einen Vorbedingungsvertrag für die eingeschlossene Methode oder Eigenschaft an und löst eine Ausnahme mit der bereitgestellten Meldung aus, wenn die Bedingung für den Vertrag fehlschlägt.

Requires<TException>(Boolean)

Gibt einen Vorbedingungsvertrag für die eingeschlossene Methode oder Eigenschaft an und löst eine Ausnahme aus, wenn die Bedingung für den Vertrag fehlschlägt.

Result<T>()

Stellt den Rückgabewert einer Methode oder Eigenschaft dar.

ValueAtReturn<T>(T)

Stellt den endgültigen (Ausgabe)-Wert eines out Parameters dar, wenn er von einer Methode zurückgegeben wird.

Ereignisse

Name Beschreibung
ContractFailed

Tritt auf, wenn ein Vertrag fehlschlägt.

Gilt für: