2 votes

format de la chaîne de caractères - vérification au moment de la compilation

Existe-t-il un moyen de vérifier la chaîne de format au moment de la compilation ?

Exemple :

Console.WriteLine("{0} is a really {1} site", "stackoverflow.com", "cool");//this will run

//cela donnera une exception car un seul argument est fourni

Console.WriteLine("{0} is a really {1} site", "stackoverflow.com");

Exception:"Index (zero based) must be greater than or equal to zero and less than the size of the argument list."

et si la chaîne de format n'est pas dans le bon format (c'est-à-dire qu'il manque le "}" après le 1 ici)

Console.WriteLine("{0} is a really {1 site", "stackoverflow.com","cool");

Exception: Input string was not in a correct format.

4voto

Ed Altorfer Points 3392

Non, vous ne pouvez pas ajouter une vérification au moment de la compilation ici. C'est l'un des inconvénients des chaînes de ressources et des chaînes de formatage. Vous pouvez faire quelques choses pour atténuer votre problème.

  1. Testez minutieusement vos interfaces publiques afin de vous assurer que vos chaînes de caractères sont correctement formatées.
  2. Utilisez des outils tels que ReSharper qui peut effectuer une analyse statique et vous informer de ces problèmes avant que vous n'exécutiez votre application.
  3. Les choses sont meilleures à trois.

2voto

Josh Stodola Points 42410

Non, il n'y a aucun moyen de le faire. Les tests unitaires résolvent ce problème.

2voto

Joey Points 148544

Bien que ce ne soit pas vraiment une vérification au moment de la compilation, ReSharper peut vous avertir dans Visual Studio lorsque le nombre d'arguments est incorrect ou que la chaîne de format n'est pas au bon format.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X