Pregunta

Estoy recibiendo una advertencia de CA1305.

Microsoft.globalization: Debido a que el comportamiento de 'int.parse (string)' podría variar según la configuración local del usuario actual, reemplace esta llamada en '_default.calculateImageButton_Click (Object, ImageClicKeVeVeVegs)' con una llamada a 'INT.PARSE (String (String String , IformatProvider) '. Si el resultado de 'Int.Parse (String, iformatProvider)' se mostrará al usuario, especifique 'culturinfo.CurrentCulture' como el parámetro 'iformatProvider'. De lo contrario, si el resultado será almacenado y accedido por software, como cuando se persiste en disco o a una base de datos, especifique 'CultureInfo.InvariantCulture'.

¿Qué puede salir mal exactamente si omito especificar la cultura al analizar INT32?

¿Fue útil?

Solución

Significa que cuando lea "1,234" de un archivo de datos o registro de la base de datos, intente lanzarlo a un int a través de PARSE, obtendrá 1234 en Estados Unidos y 1 en Alemania. La advertencia brinda un buen consejo: si está interactuando con el usuario, especifique CurrentCulture (¡gracias Andrew!), Y si está interactuando con un sistema de archivos o una base de datos (¡o cualquier cosa! Usuario), use InvariantCulture

Otros consejos

Si está analizando un entero, puede tener mil separadores, lo que puede ser "," o ". Dependiendo del lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top