J'ai rencontré un problème lors de l'utilisation d'invariants avec des contrats de code. Je veux définir un Invariant dans ma classe abstraite mais il est simplement ignoré. Le code ci-dessous montre mon interface et la classe abstraite. Par la suite, j'implémente cette interface dans ma classe Point et j'en crée un objet. Cela devrait au moins échouer pendant l'exécution. Lorsque je déplace l'invariant vers la classe de points, cela fonctionne correctement. Toutes les autres conditions préalables ou postales fonctionnent bien aussi.Contrats de code: Invariants dans la classe abstraite
Est-il impossible d'avoir des Invariants dans une classe abstraite ou est-ce que je le fais mal?
Pourquoi? Une classe abstraite n'est pas une interface et ne doit pas commencer par I. –
J'utilise la même sémantique que dans le manuel des contrats de code. Voir le chapitre 2.8 http://research.microsoft.com/fr-fr/projects/contracts/userdoc.pdf – Dynamike
Je vois ... Ce n'est pas I-FooContract, c'est IFoo-Contract. Si c'était moi, je l'écrirais probablement pour être clair, mais il y a peut-être une convention ici ... –