Partager via


Contract Classe

Définition

Contient des méthodes statiques pour représenter des contrats de programme tels que conditions préalables, post-conditions et invariants objet.

public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
Héritage
Contract

Remarques

Les classes de contrat de code vous permettent de spécifier des conditions préalables, des post-conditions et des invariants d’objets dans votre code. Les conditions préalables sont des exigences qui doivent être satisfaites à l'entrée d'une méthode ou d'une propriété. Les post-conditions décrivent les attentes à la sortie de la méthode ou de la propriété. Les invariants d’objet décrivent l’état attendu pour une classe qui n’a aucun problème de condition. Pour plus d’informations sur les conditions préalables, les postconditions et les invariants d’objets, consultez Contrats de code.

Pour obtenir des outils et des instructions détaillées sur l’utilisation des contrats de code, consultez Contrats de code sur la Place de marché Visual Studio.

Important

Vous devez utiliser une réécriture binaire pour insérer l’exécution des contrats. Sinon, les contrats tels que la Contract.Ensures méthode ne peuvent être testés que de manière statique et ne lèveront pas d’exceptions pendant l’exécution en cas de violation d’un contrat. Vous pouvez télécharger la réécriture binaire CCRewrite à partir de Contrats de code sur visual Studio Marketplace. CCRewrite est fourni avec un complément Visual Studio qui vous permet d’activer l’application du contrat d’exécution à partir de la page Propriétés du projet. La réécriture binaire et le complément Visual Studio ne sont pas fournis avec Visual Studio 2010 ou le SDK Windows.

Méthodes

Assert(Boolean)

Vérifie une condition ; si la condition est false, suit la stratégie d'escalade définie pour l'analyseur.

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é.

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.

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.

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.

Ensures(Boolean)

Spécifie un contrat de post-condition pour la méthode englobante ou la propriété.

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.

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.

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.

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.

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

Détermine si un élément dans une collection d'éléments existe dans une fonction.

ForAll(Int32, Int32, Predicate<Int32>)

Détermine si une condition particulière est valide pour tous les entiers d'une étendue spécifiée.

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

Détermine si tous les éléments dans une collection existent dans une fonction.

Invariant(Boolean)

Spécifie un contrat indifférent pour la méthode englobante ou la propriété.

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.

OldValue<T>(T)

Représente les valeurs telles qu'elles étaient au démarrage d'une méthode ou d'une propriété.

Requires(Boolean)

Spécifie un contrat de condition préalable pour la méthode englobante ou la propriété.

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.

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.

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.

Result<T>()

Représente la valeur de retour d'une méthode ou propriété.

ValueAtReturn<T>(T)

Représente la valeur finale (sortie) d'un paramètre out lors du retour d'une méthode.

Événements

ContractFailed

Se produit quand un contrat échoue.

S’applique à