Int32.ToString () é específico da cultura?
Estou executando uma versão beta do ReSharper e está me dando avisos para o seguinte código:
int id;
// ...
DoSomethingWith(id.ToString());
O aviso está noid.ToString()
call e está me dizendo "Especifique uma cultura na conversão de string explicitamente". Entendo o aviso e sei como corrigi-lo - basta alterar o código para o muito mais pesadoid.ToString(CultureInfo.InvariantCulture)
.
Mas minha pergunta é: isso é necessário? Quero dizer, obviamente, é importante especificar a cultura quando você estiver usando tipos comoDateTime
(culturas diferentes têm formatos de data diferentes) eDouble
(caracteres diferentes usados para o ponto decimal). MasInt32.ToString()
, pelo menos nas culturas norte-americana e invariável, não adiciona nenhuma formatação. Sem vírgulas, sem pontos decimais, sem cifrões, nada. Então, o que haveria para variar de acordo com a cultura?
Existem algumas culturas que realmenteadiciona algum tipo de formatação quando você chama o parâmetroInt32.ToString()
? Ou isso é um bug na versão beta do ReSharper e esse aviso realmente não é aplicável aInt32
(nesse caso, arquivarei um relatório de bug do ReSharper