Contract Contract Contract Contract Class

Definition

Enthält statische Methoden zum Darstellen von Programmverträgen, z. B. Vorbedingungen, Nachbedingungen und Objektinvarianten.Contains static methods for representing program contracts such as preconditions, postconditions, and object invariants.

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

Hinweise

Mit Code Vertrags Klassen können Sie Vorbedingungen, nach Bedingungen und Objekt invarianten in Ihrem Code angeben.Code contract classes let you specify preconditions, postconditions, and object invariants in your code. Vorbedingungen sind Anforderungen, die beim Eingeben einer Methode oder Eigenschaft erfüllt werden müssen.Preconditions are requirements that must be met when entering a method or property. Nachbedingungen beschreiben Erwartungen zu dem Zeitpunkt, zu dem die Methode oder der Eigenschaftencode beendet wird.Postconditions describe expectations at the time the method or property code exits. Objekt invarianten beschreiben den erwarteten Zustand für eine Klasse, die keine Bedingungs Probleme aufweist.Object invariants describe the expected state for a class that has no condition problems. Weitere Informationen zu Vorbedingungen, nach Bedingungen und Objekt invarianten finden Sie unter Code Verträge.For more information about preconditions, postconditions, and object invariants, see Code Contracts.

Tools und detaillierte Anweisungen zur Verwendung von Codeverträgen finden Sie auf der MSDN DevLabs-Website unter Codeverträge.For tools and detailed instructions for using code contracts, see Code Contracts on the MSDN DevLabs Web site.

Wichtig

Sie müssen einen binären ReWriter verwenden, um die Lauf Zeit Erzwingung von Verträgen einzufügen.You must use a binary rewriter to insert run-time enforcement of contracts. Andernfalls können Verträge, wie z Contract.Ensures . b. die-Methode, nur statisch getestet werden und lösen während der Laufzeit keine Ausnahmen aus, wenn ein Vertrag verletzt wird.Otherwise, contracts such as the Contract.Ensures method can only be tested statically and will not throw exceptions during run time if a contract is violated. Auf der MSDN DevLabs-Website können Sie den binären ReWriter ckrewrite aus Code Verträgen herunterladen.You can download the binary rewriter CCRewrite from Code Contracts on the MSDN DevLabs Web site. Ckrewrite enthält ein Visual Studio-Add-in, mit dem Sie die Lauf Zeit Vertrags Erzwingung über die Projekt Eigenschaften Seite aktivieren können.CCRewrite comes with a Visual Studio add-in that enables you to activate run-time contract enforcement from the project Properties page. Der binäre Rewriter und das Visual Studio-Add-in sind nicht mit Visual Studio 2010Visual Studio 2010 dem-oder dem-Windows SDK ausgeliefert.The binary rewriter and the Visual Studio add-in do not ship with Visual Studio 2010Visual Studio 2010 or the Windows SDK.

Methoden

Assert(Boolean) Assert(Boolean) Assert(Boolean) Assert(Boolean)

Überprüft eine Bedingung. Wenn die Bedingung false ist, wird die festgelegte Ausweitungsrichtlinie für den Analyzer angewendet.Checks for a condition; if the condition is false, follows the escalation policy set for the analyzer.

Assert(Boolean, String) Assert(Boolean, String) Assert(Boolean, String) Assert(Boolean, String)

Überprüft eine Bedingung. Wenn die Bedingung false ist, wird die vom Analyzer festgelegte Ausweitungsrichtlinie angewendet und die angegebene Meldung angezeigt.Checks for a condition; if the condition is false, follows the escalation policy set by the analyzer and displays the specified message.

Assume(Boolean) Assume(Boolean) Assume(Boolean) 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.Instructs code analysis tools to assume that the specified condition is true, even if it cannot be statically proven to always be true.

Assume(Boolean, String) Assume(Boolean, String) Assume(Boolean, String) 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.Instructs code analysis tools to assume that a condition is true, even if it cannot be statically proven to always be true, and displays a message if the assumption fails.

EndContractBlock() EndContractBlock() EndContractBlock() EndContractBlock()

Markiert das Ende des Vertragsabschnitts, wenn die Verträge einer Methode nur Vorbedingungen in Form vom if-then-throw enthalten.Marks the end of the contract section when a method's contracts contain only preconditions in the if-then-throw form.

Ensures(Boolean) Ensures(Boolean) Ensures(Boolean) Ensures(Boolean)

Gibt einen Nachbedingungsvertrag für die einschließende Methode oder Eigenschaft an.Specifies a postcondition contract for the enclosing method or property.

Ensures(Boolean, String) Ensures(Boolean, String) Ensures(Boolean, String) Ensures(Boolean, String)

Gibt einen Nachbedingungsvertrag für eine vorhandene Exit-Bedingung und eine Meldung an, die angezeigt wird, wenn die Bedingung false ist.Specifies a postcondition contract for a provided exit condition and a message to display if the condition is false.

EnsuresOnThrow<TException>(Boolean) EnsuresOnThrow<TException>(Boolean) EnsuresOnThrow<TException>(Boolean) EnsuresOnThrow<TException>(Boolean)

Gibt einen Nachbedingungsvertrag für die einschließende Methode oder Eigenschaft auf Grundlage der angegebenen Ausnahme und Bedingung an.Specifies a postcondition contract for the enclosing method or property, based on the provided exception and condition.

EnsuresOnThrow<TException>(Boolean, String) EnsuresOnThrow<TException>(Boolean, String) EnsuresOnThrow<TException>(Boolean, String) 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.Specifies a postcondition contract and a message to display if the condition is false for the enclosing method or property, based on the provided exception and condition.

Exists(Int32, Int32, Predicate<Int32>) Exists(Int32, Int32, Predicate<Int32>) Exists(Int32, Int32, Predicate<Int32>) 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.Determines whether a specified test is true for any integer within a range of integers.

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

Bestimmt, ob ein Element in einer Auflistung von Elementen in einer Funktion vorhanden ist.Determines whether an element within a collection of elements exists within a function.

ForAll(Int32, Int32, Predicate<Int32>) ForAll(Int32, Int32, Predicate<Int32>) ForAll(Int32, Int32, Predicate<Int32>) ForAll(Int32, Int32, Predicate<Int32>)

Bestimmt, ob eine angegebene Bedingung für alle ganzen Zahlen in einem angegebenen Bereich gültig ist.Determines whether a particular condition is valid for all integers in a specified range.

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

Bestimmt, ob alle Elemente in einer Auflistung in einer Funktion vorhanden sind.Determines whether all the elements in a collection exist within a function.

Invariant(Boolean) Invariant(Boolean) Invariant(Boolean) Invariant(Boolean)

Gibt einen invarianten Vertrag für die einschließende Methode oder Eigenschaft an.Specifies an invariant contract for the enclosing method or property.

Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String) 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.Specifies an invariant contract for the enclosing method or property, and displays a message if the condition for the contract fails.

OldValue<T>(T) OldValue<T>(T) OldValue<T>(T) OldValue<T>(T)

Stellt Werte in ihrem Zustand beim Starten einer Methode oder einer Eigenschaft dar.Represents values as they were at the start of a method or property.

Requires(Boolean) Requires(Boolean) Requires(Boolean) Requires(Boolean)

Gibt einen Vorbedingungsvertrag für die einschließende Methode oder Eigenschaft an.Specifies a precondition contract for the enclosing method or property.

Requires(Boolean, String) Requires(Boolean, String) Requires(Boolean, String) 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.Specifies a precondition contract for the enclosing method or property, and displays a message if the condition for the contract fails.

Requires<TException>(Boolean) Requires<TException>(Boolean) Requires<TException>(Boolean) 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.Specifies a precondition contract for the enclosing method or property, and throws an exception if the condition for the contract fails.

Requires<TException>(Boolean, String) Requires<TException>(Boolean, String) Requires<TException>(Boolean, String) 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.Specifies a precondition contract for the enclosing method or property, and throws an exception with the provided message if the condition for the contract fails.

Result<T>() Result<T>() Result<T>() Result<T>()

Stellt den Rückgabewert einer Methode oder Eigenschaft dar.Represents the return value of a method or property.

ValueAtReturn<T>(T) ValueAtReturn<T>(T) ValueAtReturn<T>(T) ValueAtReturn<T>(T)

Stellt den von einer Methode zurückgegebenen endgültigen Wert (Ausgabewert) eines out-Parameters dar.Represents the final (output) value of an out parameter when returning from a method.

Ereignisse

ContractFailed ContractFailed ContractFailed ContractFailed

Tritt auf, wenn ein Vertrag fehlschlägt.Occurs when a contract fails.

Gilt für: