Qual è la migliore pratica per specificare CurrentCulture o InvariantCulture e non specificare affatto la cultura?Quando devo specificare CurrentCulture o InvariantCulture e quando dovrei lasciarlo non specificato?
Da quello che ho letto, se si sta eseguendo la serializzazione, ad esempio, è necessario InvariantCulture come mezzo per specificare una rappresentazione canonica di un valore di dati. Questa è una percentuale relativamente piccola di manipolazioni di stringhe basate sulla cultura.
Trovo lungo, prolisso, e brutto il più delle volte per specificare che ogni volta che faccio, dico:
var greeting = string.Format(CultureInfo.CurrentCulture, "Hello ", userName);
Tuttavia, il mio team ha recentemente girato FxCop su e ora c'è una spinta a utilizzare sempre CultureInfo OVUNQUE. Qual è la tecnica migliore per combinare brevità, leggibilità e funzionalità?
Qualche buona lettura materiale:
@Reed Copsey: ho anche scoperto che l'aggiunta ovunque come riflesso FxCop crea bug - diverse volte ho visto casi in cui è stata specificata l'opzione cultura errata. Questo è ovviamente solo un problema educativo, ma è un evento comune quando qualcosa come FxCop ti dice di fare le cose, ma non necessariamente capisci perché. –
@Scott: vero. Ma questo è il caso di tutto nella programmazione - se hai intenzione di usarlo devi capirlo o ti morderà. L'unico modo sensato di fare localizzazione è considerarlo quando scrivi per la prima volta il codice: localizzare un prodotto completato è uno dei peggiori lavori da fare e un ordine di grandezza più costoso di pensarci dall'inizio. –
Non sono d'accordo. Metterei la cultura in tutte le ToString() delle mie classi? Penso che la logica e gli oggetti dovrebbero essere inconsapevoli della cultura. – onof