Contract Contract Contract Contract Class

Définition

Contient des méthodes statiques pour représenter des contrats de programme tels que conditions préalables, post-conditions et invariants objet.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
Héritage
ContractContractContractContract

Remarques

Les classes de contrat de code vous permettent de spécifier des conditions préalables, des post-conditions et des invariants d’objet dans votre code.Code contract classes let you specify preconditions, postconditions, and object invariants in your code. Les conditions préalables sont des exigences qui doivent être satisfaites à l'entrée d'une méthode ou d'une propriété.Preconditions are requirements that must be met when entering a method or property. Les post-conditions décrivent les attentes à la sortie de la méthode ou de la propriété.Postconditions describe expectations at the time the method or property code exits. Les invariants d’objet décrivent l’État attendu pour une classe qui n’a pas de problèmes de condition.Object invariants describe the expected state for a class that has no condition problems. Pour plus d’informations sur les conditions préalables, les post-conditions et les invariants d’objet, consultez contrats de code.For more information about preconditions, postconditions, and object invariants, see Code Contracts.

Pour télécharger les outils et obtenir des instructions détaillées sur l’utilisation des contrats de code, consultez Contrats de code sur le site web MSDN DevLabs.For tools and detailed instructions for using code contracts, see Code Contracts on the MSDN DevLabs Web site.

Important

Vous devez utiliser un ReWriter binaire pour insérer la mise en application des contrats au moment de l’exécution.You must use a binary rewriter to insert run-time enforcement of contracts. Sinon, les contrats tels que Contract.Ensures la méthode peuvent uniquement être testés de manière statique et ne lèvent pas d’exceptions au moment de l’exécution si un contrat est violé.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. Vous pouvez télécharger le fichier binaire de réécriture CCRewrite à partir des contrats de code sur le site Web MSDN DevLabs.You can download the binary rewriter CCRewrite from Code Contracts on the MSDN DevLabs Web site. CCRewrite est fourni avec un complément Visual Studio qui vous permet d’activer la mise en application des contrats d’exécution à partir de la page de Propriétés du projet.CCRewrite comes with a Visual Studio add-in that enables you to activate run-time contract enforcement from the project Properties page. Le module de réécriture binaire et le complément Visual Studio ne sont Visual Studio 2010Visual Studio 2010 pas fournis avec ou le SDK Windows.The binary rewriter and the Visual Studio add-in do not ship with Visual Studio 2010Visual Studio 2010 or the Windows SDK.

Méthodes

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

Vérifie une condition ; si la condition est false, suit la stratégie d'escalade définie pour l'analyseur.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)

Vérifie une condition ; si la condition est false, suit la stratégie d'escalade définie par l'analyseur et affiche le message spécifié.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)

Fait en sorte que les outils d'analyse du code supposent que la condition spécifiée est true, même s'il ne peut pas être prouvé statiquement qu'elle est toujours true.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)

Fait en sorte que les outils d'analyse du code supposent qu'une condition est true, même s'il ne peut pas être prouvé statiquement qu'elle est toujours true, et affiche un message si l'hypothèse échoue.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()

Marque la fin de la section de contrat quand les contrats d’une méthode contiennent uniquement des conditions préalables sous la forme if-then-throw.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)

Spécifie un contrat de post-condition pour la méthode englobante ou la propriété.Specifies a postcondition contract for the enclosing method or property.

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

Spécifie un contrat de post-condition pour une condition de sortie fournie et un message à afficher si la condition est false.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)

Spécifie un contrat de post-condition pour la méthode englobante ou la propriété en fonction de l'exception et de la condition fournies.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)

Spécifie un contrat de post-condition et un message à afficher si la condition est false pour la méthode englobante ou la propriété, en fonction de l'exception et de la condition fournies.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>)

Détermine si un test spécifié a la valeur True pour un entier figurant dans une plage d'entiers.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>)

Détermine si un élément dans une collection d'éléments existe dans une fonction.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>)

Détermine si une condition particulière est valide pour tous les entiers d'une étendue spécifiée.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>)

Détermine si tous les éléments dans une collection existent dans une fonction.Determines whether all the elements in a collection exist within a function.

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

Spécifie un contrat indifférent pour la méthode englobante ou la propriété.Specifies an invariant contract for the enclosing method or property.

Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String) Invariant(Boolean, String)

Spécifie un contrat indifférent préalable pour la méthode englobante ou la propriété, et affiche un message si la condition pour le contrat échoue.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)

Représente les valeurs telles qu'elles étaient au démarrage d'une méthode ou d'une propriété.Represents values as they were at the start of a method or property.

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

Spécifie un contrat de condition préalable pour la méthode englobante ou la propriété.Specifies a precondition contract for the enclosing method or property.

Requires(Boolean, String) Requires(Boolean, String) Requires(Boolean, String) Requires(Boolean, String)

Spécifie un contrat de condition préalable pour la méthode englobante ou la propriété, et affiche un message si la condition pour le contrat échoue.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)

Spécifie un contrat de condition préalable pour la méthode englobante ou la propriété, et lève une exception si la condition pour le contrat échoue.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)

Spécifie un contrat de condition préalable pour la méthode englobante ou la propriété, et lève une exception avec le message fourni si la condition pour le contrat échoue.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>()

Représente la valeur de retour d'une méthode ou propriété.Represents the return value of a method or property.

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

Représente la valeur finale (sortie) d'un paramètre out lors du retour d'une méthode.Represents the final (output) value of an out parameter when returning from a method.

Événements

ContractFailed ContractFailed ContractFailed ContractFailed

Se produit quand un contrat échoue.Occurs when a contract fails.

S’applique à