Je suis en cours d'exécution d'une version bêta de ReSharper, et c'est de me donner des avertissements pour le code suivant:
int id;
// ...
DoSomethingWith(id.ToString());
L'avertissement est sur le id.ToString()
appel, et il me dit "Spécifier une culture au sein de la chaîne de conversion explicitement". Je comprends l'avertissement, et je sais comment résoudre le problème -- il suffit de changer le code pour le beaucoup plus compliqué id.ToString(CultureInfo.InvariantCulture)
.
Mais ma question est: est-ce nécessaire? Je veux dire, évidemment, il est important de spécifier la culture lorsque vous utilisez des types comme DateTime
(différentes cultures ont différents formats de date) et Double
(différents caractères utilisés pour le point décimal). Mais Int32.ToString()
, au moins dans l'en-US et de l'invariant de cultures, de ne pas ajouter de mise en forme à tous. Pas de virgule, pas de décimales, pas de signes dollar, rien. Alors, qu'aurait-il à varier en fonction de la culture?
Certaines cultures qui en fait ajouter une sorte de mise en forme lorsque vous appelez la sans paramètre Int32.ToString()
? Ou est-ce un bug dans le ReSharper bêta, et cet avertissement n'est pas vraiment applicable à l' Int32
(dans ce cas, je vais déposer une ReSharper rapport de bug)?