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 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 |
| Assert(Boolean) |
Sucht nach einer Bedingung; wenn die Bedingung lautet |
| Assume(Boolean, String) |
Weist Codeanalysetools an, davon auszugehen, dass eine Bedingung |
| Assume(Boolean) |
Weist Codeanalysetools an, davon auszugehen, dass die angegebene Bedingung ist |
| EndContractBlock() |
Kennzeichnet das Ende des Vertragsabschnitts, wenn die Verträge einer Methode nur Voraussetzungen im |
| Ensures(Boolean, String) |
Gibt einen Postcondition-Vertrag für eine bereitgestellte Beendigungsbedingung und eine Meldung an, die angezeigt werden soll, wenn die Bedingung ist |
| 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 |
| 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 |
Ereignisse
| Name | Beschreibung |
|---|---|
| ContractFailed |
Tritt auf, wenn ein Vertrag fehlschlägt. |