Vale a pena usar a formatação de string invariável de cultura em aplicativos de cultura única?

5

Às vezes, precisamos inserir um ID inteiro em uma string, por exemplo, ao gerar o formulário HTML <select> items.

A chamada de int.ToString() pode resultar em dígitos fora do intervalo [0-9] em determinadas culturas. Por esse motivo, você precisa especificar a cultura invariável em aplicativos de extensão de cultura (por exemplo, int.ToString(CultureInfo.InvariantCulture) ).

Vale a pena tomar cuidado e fazer isso, mesmo se soubermos que o aplicativo só será executado em uma cultura ocidental específica (por exemplo, alemão)? Parece ser a coisa "correta" a ser feita. Ou esse esforço não foi bem gasto?

Atualização: parece que a formatação inteira é quase imune à cultura . Minha suposição estava errada, mas vou manter o texto para o contexto.

    
por boot4life 09.05.2016 / 20:10
fonte

3 respostas

4

Como a saída será exatamente a mesma, essa é uma escolha bastante subjetiva. Se você sabe que o aplicativo só será executado em uma cultura específica, então eu diria deixar por simplicidade.

Mas se o aplicativo puder ser portado para várias culturas, eu diria deixá-lo. Mesmo se você conhecer todas as culturas que você porta para todos têm a mesma formatação de inteiro, você não deve exigir que todas Os leitores do código sabem disso e, sem o conhecimento, o código parece um bug sutil. Portanto, deixe claro no código que o valor deve ser invariável e não específico da cultura.

    
por 09.05.2016 / 20:59
fonte
1

Eu diria que sim.

O problema é que mesmo se as pessoas estiverem na Alemanha, isso não significa necessariamente que elas estarão executando versões em alemão do Windows. As pessoas imigram e às vezes trazem seus computadores com elas, as pessoas executam versões em inglês do Windows porque o outro software é quebrado em versões alemãs do Windows.

Como você diz, isso não é um problema muito grande com o ints, mas é um grande problema com números de ponto flutuante.

    
por 10.05.2016 / 01:25
fonte
1

Mesmo que você nunca pretenda operar em outro sistema ou em outra cultura, uma vez que o fato muda, e você pode se surpreender com a frequência com que isso acontece, declarar a cultura invariável neste caso marca sua intenção, o que ajudará futuros mantenedores de seu código, quem pode ser você mesmo.

Em outras palavras; se estar implícito não transmitir adequadamente a sua intenção, seja explícito.

    
por 13.05.2016 / 19:12
fonte