Question

Yat-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 format correct (à savoir le manque "}" après 1 ici)

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

Exception: Input string was not in a correct format.
Était-ce utile?

La solution

Non, vous ne pouvez pas ajouter la vérification de la compilation ici. Ceci est l'un des bas-côtés à des chaînes de ressources et les chaînes de formatage. Vous pouvez faire quelques petites choses pour atténuer votre problème.

  1. unité soigneusement tester vos interfaces publiques pour être sûr que vos chaînes sont correctement mis en forme.
  2. Utilisez des outils comme ReSharper qui peuvent effectuer des analyses statiques et vous informer sur ces problèmes avant d'exécuter l'application.
  3. Les choses sont mieux trois.

Autres conseils

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

Bien que pas vraiment la vérification à la compilation, ReSharper peut vous avertir dans Visual Studio lorsque le nombre d'arguments est erroné ou la chaîne de format est dans le mauvais format.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top