Le code suivant me donne l'avertissement Contract class 'FooContracts' should be an abstract class
. De tous les exemples que j'ai lus en ligne (par exemple http://www.infoq.com/articles/code-contracts-csharp), cela devrait fonctionner (vraisemblablement sans les avertissements du compilateur).La classe de contrat doit être une classe abstraite
[ContractClass(typeof(FooContracts))]
public interface IFoo {
void Bar(string foo);
}
[ContractClassFor(typeof(IFoo))]
internal sealed class FooContracts : IFoo {
void IFoo.Bar(string foo) {
Contract.Requires(foo != null);
}
}
Je suis dans Visual Studio 2010, avec les paramètres suivants dans la section Code Contracts
des propriétés du projet:
- Effectuer exécution du contrat Vérification (ensemble à
Full
) - Effectuer contrat Vérification statique (sous
Static Checking
) - Enregistrement en arrière-plan
J'ai également défini le symbole de compilation CONTRACTS_FULL
pour que ReSharper se taise. Est-ce que je manque quelque chose pour faire cette compilation sans avertissements?
huh. Merci pour le lien. ce fait n'a jamais été mentionné ni démontré dans un exemple de code que j'ai trouvé. – tmont