J'aimerais vraiment essayer le nouveau contrat de code dans Visual Studio 2010, mais je ne veux pas installer d'extensions supplémentaires à Visual Studio (puisque mon code est partagé avec mes collègues). Maintenant, lorsque je cible .NET 4.0, je peux utiliser le nouvel espace de nom System.Diagnostics.Contracts, mais je ne parviens pas encore à le faire fonctionner.
Par exemple, en utilisant
static void Main(string[] args)
{
Greet(null);
Console.ReadLine();
}
private static void Greet(string name)
{
Contract.Requires(name != null);
Console.Out.WriteLine("Hello {0}", name);
}
Le programme se compile et s'exécute (en affichant "Hello") sans aucun avertissement. Si j'essaie d'utiliser Contract.Requires<ArgumentNullException>(name != null)
Je reçois un message me disant que je dois utiliser le réécrivain, quelle que soit la valeur du nom. Google me dit que je peux obtenir n'importe quel type de magie si j'installe Code Contracts premium, mais quel est le but de cet espace de noms si je ne le fais pas ? Puis-je utiliser Code Contracts pour autre chose que des commentaires élaborés dès le départ ?