ReSharper mi avverte che ho bisogno di specificare una stringa quando la cultura fa un int.ToString()Perché specificare la cultura nella conversione String
Ad esempio:
int Value = Id.ToString(); // Where Id is an int
'solo ReSharper essere pedante, o c'è una ragione per cui ho bisogno di dare un'impostazione cultura per convertire un int in una stringa?
E se c'è un motivo per farlo - qual è il migliore da usare, quando il mio sito è utilizzato in tutto il mondo? Dovrebbe semplicemente riflettere le impostazioni del server, in modo che la conversione interna sia fatta in sicurezza?
Ma .NET non lo basa sulle attuali informazioni sulla cultura dei thread? In questo modo lo serializzerà correttamente per l'utente che lo sta usando? Il mio punto è che gli utenti vogliono vederlo nella loro cultura, non in qualche altra cultura che non capiranno, quindi perché Resharper lo suggerisce? –
Lo fa, ma ReSharper (e FXCop su cui è basato) lo indicano come "hai davvero intenzione di fare questo" tipo di cosa. È meglio essere espliciti e utilizzare CultureInfo.CurrentCulture se si vuole veramente questo comportamento. Altrimenti usa CultureInfo.InvariantCulture –
Ah, perfetto! Ho dimenticato i decimali. Nel mio caso, sto prendendo una colonna di identità SQL, INT, che credo sarà sempre un numero intero e convertendola in una stringa per il valore di una casella a discesa dell'interfaccia utente. La tua risposta spiega dove altro sarebbe utile. Immagino quindi che finché uso "CultureInfo.InvariantCulture", tutto sarà uniforme? – Craig