Quelle est la meilleure pratique pour spécifier CurrentCulture ou InvariantCulture et ne pas spécifier la culture du tout? D'après ce que j'ai lu, si vous effectuez une sérialisation, par exemple, vous avez besoin de InvariantCulture pour spécifier une représentation canonique d'une valeur de données. C'est un pourcentage relativement faible de manipulations de chaînes basées sur la culture.Quand devrais-je spécifier CurrentCulture ou InvariantCulture et quand dois-je le laisser non spécifié?
je trouve long, bavard, et laid la plupart du temps de préciser chaque fois que je fais, dire:
var greeting = string.Format(CultureInfo.CurrentCulture, "Hello ", userName);
Cependant, mon équipe a récemment tourné FxCop sur et maintenant il y a un coup de pouce à toujours utiliser CultureInfo PARTOUT. Quelle est la meilleure technique pour combiner brièveté, lisibilité et fonctionnalité?
bon matériel de lecture:
@Reed Copsey: J'ai aussi trouvé que l'ajouter partout comme un reflex FxCop crée des bugs - plusieurs fois j'ai vu des cas où la mauvaise option de culture a été spécifiée. C'est évidemment juste un problème d'éducation, mais c'est un phénomène courant quand quelque chose comme FxCop vous dit de faire des choses mais vous ne comprenez pas nécessairement pourquoi. –
@Scott: Vrai. Mais c'est le cas de tout ce qui concerne la programmation. Si vous l'utilisez, vous devez le comprendre ou vous mordre. La seule façon raisonnable de faire de la localisation est de le considérer quand vous écrivez le code - localiser un produit terminé est l'un des pires travaux à faire, et un ordre de grandeur plus cher que d'y penser depuis le début. –
Je ne suis pas d'accord. Est-ce que je mettrais la culture dans tous les ToString() de mes cours? Je pense que la logique et les objets devraient être inconscients de la culture. – onof