¿Alguien podría dar un ejemplo para demostrar el uso de la Cultura Invariante ? No entiendo lo que describe la documentación.
¿Alguien podría dar un ejemplo para demostrar el uso de la Cultura Invariante ? No entiendo lo que describe la documentación.
Respuestas:
La cultura invariante es una cultura especial que es útil porque no cambiará. La cultura actual puede cambiar de un usuario a otro, o incluso de una carrera a otra, por lo que no puede confiar en que se mantenga igual.
Poder usar la misma cultura cada vez es muy importante en varios flujos, por ejemplo, la serialización: puede tener un valor de 1,1 en una cultura y 1,1 en otra. Si intenta analizar el valor "1,1" en la segunda cultura, el análisis fallará. Sin embargo, puede usar la cultura invariante para convertir un número en una cadena y luego analizarlo desde cualquier computadora con cualquier conjunto de cultura.
// Use some non-invariant culture.
CultureInfo nonInvariantCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = nonInvariantCulture;
decimal dec = 1.1m;
string convertedToString = dec.ToString();
// Simulate another culture being used,
// following code can run on another computer.
nonInvariantCulture.NumberFormat.NumberDecimalSeparator = ",";
decimal parsedDec;
try
{
// This fails because value cannot be parsed.
parsedDec = decimal.Parse(convertedToString);
}
catch (FormatException)
{
}
// However you always can use Invariant culture:
convertedToString = dec.ToString(CultureInfo.InvariantCulture);
// This will always work because you serialized with the same culture.
parsedDec = decimal.Parse(convertedToString, CultureInfo.InvariantCulture);
System.Globalization
espacio de nombres.
CultureInfo.InvariantCulture
funciona porque serializaste con la misma cultura ... ¿no es lo mismo que usar CultureInfo.CurrentCulture
?
CultureInfo.InvariantCulture
entonces sabe que siempre podrá volver a analizar con un decimal usando CultureInfo.InvariantCulture
. Si usa CultureInfo.CurrentCulture
para serializar, su usuario podría tener "en-US" como su cultura actual. El siguiente usuario que vaya a analizarlo de nuevo a un decimal podría tener una cultura actual que use "," para un separador.
Una cultura falsa basada en el inglés con comportamiento definido. Excelente para escribir, por ejemplo, cosas en archivos de configuración para que puedan leerse y escribirse independientemente de la cultura que el usuario haya definido.
Básicamente es una cultura específica que es artificial y no cambiará .
Se usa para cosas que son iguales independientemente de la cultura (que no es necesario traducir a alguna cultura X para ser apropiado)
como por ejemplo: https://msdn.microsoft.com/en-us/library/4c5zdc6a(v=vs.100).aspx . Cuando escribe un archivo específico de la aplicación con el que el usuario no debería estar jugando, debe usar InvariantCulture para todos los métodos que incorporan un parámetro de cultura.
Tenga en cuenta que según los documentos vinculados anteriormente:
Sin embargo, una aplicación debe usar la cultura invariante solo para procesos que requieren resultados independientes de la cultura, como formatear y analizar datos que se conservan en un archivo.
La cultura invariante es insensible a la cultura; está asociado con el idioma inglés pero no con ningún país / región.
CultureInfo.InvariantCulture recupera una instancia de la cultura invariante. Se puede usar en casi cualquier método en el sistema. Espacio de nombres de globalización que requiere una cultura.
Los objetos devueltos por propiedades como CompareInfo, DateTimeFormat y NumberFormat también reflejan la comparación de cadenas y las convenciones de formato de la cultura invariante. La propiedad InvariantCulture es útil cuando desea mostrar datos persistentes en una cultura independiente formato .
Por ejemplo, si desea mostrar un número o una fecha y hora en un formato específico independiente de la cultura actual de la aplicación, puede usar CultureInfo.InvariantCulture .
Es un idioma inglés universal, simple, no regional, específico y otra información relacionada. Es como el lenguaje del lenguaje de programación en sí. Puede confiar en él para configurar un calendario universal; en situaciones en las que necesita generar nombres de controlador, URL, nombres de delegado ... etc. y necesitan cosas para actuar de forma natural y universal entre todos los usuarios.