Sto scrivendo una stringa personalizzata nel validatore decimale che deve utilizzare Decimal.TryParse che ignora la cultura (cioè non interessa se l'input contiene "." O "," come punto decimale separatore). Questo è il metodo suggerito:Culture invariant Decimal.TryParse()
public static bool TryParse(
string s,
NumberStyles style,
IFormatProvider provider,
out decimal result
)
io non riesco a capire cosa usare come il terzo parametro. Gli esempi che ho visto assomigliano a questo:
culture = CultureInfo.CreateSpecificCulture("en-GB");
Decimal.TryParse(value, style, culture, out number)
in modo da creare una cultura specifica. CultureInfo non ha un metodo "CreateInvariantCulture" e CultureInfo.InvariantCulture non è del tipo richiesto. Qual è l'uso corretto?
Dalla [Documentazione Microsoft] (https://msdn.microsoft.com/en-us/library/9zbda557 (v = vs.110) .aspx) sembra che .NET ritorni alle impostazioni di sistema locali se non specificare una cultura: 'I parametri vengono analizzati utilizzando le informazioni di formattazione in un oggetto NumberFormatInfo inizializzato per la cultura di sistema corrente. –
L'analisi da 1,5 a 15 non è veramente corretta, vero? Se ',' è un separatore di migliaia, non dovrebbe essere consentito nella posizione 10. Penso che l'analisi di 1,5 usando l'analisi di invariant della cultura dovrebbe fallire. –