Partager via


Contract.Invariant Méthode

Définition

Spécifie un contrat pour une méthode englobante ou une propriété.

Surcharges

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.

Invariant(Boolean)

Source:
Contracts.cs
Source:
Contracts.cs
Source:
Contracts.cs

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

public:
 static void Invariant(bool condition);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Invariant : bool -> unit
Public Shared Sub Invariant (condition As Boolean)

Paramètres

condition
Boolean

Expression conditionnelle à tester.

Attributs

Remarques

Invariant les contrats sont contenus dans une méthode qui est identifiée par l’attribut ContractInvariantMethodAttribute ; en général, la méthode est nommée ObjectInvariant.

  • Ce contrat ne peut être spécifié que dans une méthode invariante dédiée déclarée sur une classe. Si la méthode n’est pas scellée, elle doit faire référence uniquement aux membres protégés, et non aux membres privés, afin que les sous-classes puissent être sûrs de conserver les invariants.

  • Ce contrat n’est pas exposé aux clients ; par conséquent, il peut référencer des membres moins visibles que la méthode englobante.

  • Vous devez utiliser la réécriture binaire pour l’application au moment de l’exécution de cet invariant.

  • Les invariants sont définis de manière conditionnelle en fonction de la présence du CONTRACTS FULL symbole. Ils sont vérifiés au moment de l'exécution à la fin de chaque méthode publique. Si un invariant mentionne une méthode publique dans la même classe, le case activée invariant qui se produirait normalement à la fin de cette méthode publique est désactivé et vérifié uniquement à la fin de l’appel de la méthode la plus externe à cette classe. Cela se produit également si la classe est à nouveau entrée à cause d'un appel à une méthode sur une autre classe.

S’applique à

Invariant(Boolean, String)

Source:
Contracts.cs
Source:
Contracts.cs
Source:
Contracts.cs

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.

public:
 static void Invariant(bool condition, System::String ^ userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition, string userMessage);
[System.Diagnostics.Conditional("CONTRACTS_FULL")]
public static void Invariant (bool condition, string? userMessage);
[<System.Diagnostics.Conditional("CONTRACTS_FULL")>]
static member Invariant : bool * string -> unit
Public Shared Sub Invariant (condition As Boolean, userMessage As String)

Paramètres

condition
Boolean

Expression conditionnelle à tester.

userMessage
String

Message à afficher si la condition est false.

Attributs

Remarques

Invariant les contrats sont contenus dans une méthode qui est identifiée par l’attribut ContractInvariantMethodAttribute ; en général, la méthode est nommée ObjectInvariant.

  • Ce contrat ne peut être spécifié que dans une méthode invariante dédiée déclarée sur une classe.

  • Ce contrat n’est pas exposé aux clients ; par conséquent, il peut référencer des membres moins visibles que la méthode englobante.

  • Vous devez utiliser la réécriture binaire pour l’application au moment de l’exécution de cet invariant.

  • Les invariants sont définis de manière conditionnelle sur le CONTRACTS FULL symbole. Ils sont vérifiés au moment de l'exécution à la fin de chaque méthode publique. Si un invariant mentionne une méthode publique dans la même classe, le case activée invariant qui se produirait normalement à la fin de cette méthode publique est désactivé et vérifié uniquement à la fin de l’appel de la méthode la plus externe à cette classe. Cela se produit également si la classe est à nouveau entrée à cause d'un appel à une méthode sur une autre classe.

S’applique à