Sign up with your email address to be the first to know about new products, VIP offers, blog features & more.

Curso C# con Mono – Conversión de tipos e información cultural

Cuando estamos trabajando con diferentes tipos de datos, siempre conviene conocer los mecanismos para convertir un tipo de datos en otros. Si a eso le sumamos, que podamos hacer aplicaciones en las que se trabaje introduciendo datos siguiente el formalismo español (comas para separar decimales, puntos para separar miles) o viceversa (podéis ver un mapa de dónde se usa cada separador decimal aquí).

Esto es lo que se llama la información cultural, que se sitúa dentro del ensamblado: System.Globalization, y que aparte de en este tema es conveniente conocer para otras tareas.

Casting

Es la forma más simple de hacer una conversión de datos. Está directamente heredada de C y puede ser implícita (si no se especifica) o explícita (cuando sí lo hacemos). Tiene grandes limitaciones porque básicamente sólo permite no convertir, sino camuflar, para una instrucción en concreto el tipo de dato.

Veamos un ejemplo:

Métodos ToString

Al igual que en otros muchos lenguajes de programación, a este nivel de abstracción, existe un método ToString, definido en cada clase, que convierte cualquier objeto en una cadena. Si tenemos un entero que tiene dentro el valor 1, devolverá una cadena “1”; igualmente pasará  con un decimal, pero aquí es donde entra la información cultural en juego. Si tenemos la cultura predefinida como la española, mostrará comas y punto de acuerdo a nuestra forma de hacerlo, si definimos otra cultura predefinida, el comportamiento cambiará conforme a eso. También podemos cambiar de forma puntual la cultura predefinida para un punto en concreto.

Veamos ejemplos de uso avanzado de ToString usando especificadores, para mostrar el mismo número por pantalla con decimales, sin ellos, en formato moneda, con porcentaje…

Veamos un ejemplo de uso con información cultural (CultureInfo):

Existen objetos, que a pesar de tener un método de este tipo, la cadena que devuelven no contiene prácticamente nada de la información del objeto. Por ejemplo, si tenemos un DataTable y le invocamos el método ToString, probablemente la salida sea sólo que es una instancia del tipo de objeto DataTable.

Métodos Parse

Podríamos decir que las funciones Parse, son la funciones inversas a los métodos ToString. A diferencia de los primeros, de una cadena, son capaces de leer su contenido y plasmarlo en un tipo de dato concreto, por ejemplo, de cadena a entero.

En C existían unas cuantas funciones que hacían esa misma labor: atoi, atol…. Además de ser verdaderamente útiles en interfaces gráficos y web, recordad que los datos que introducen los usuarios suelen venir en formato cadena, por la propia constitución de este tipo de interfaces.

Además son verdaderamente útiles cuando tratamos con tipos de datos a los que no podemos hacer casting directamente, ya que la solución más práctica es hacer un ToString seguido de un Parse.

Veamos ejemplos:

Como podréis imaginar, si queremos pasar datos decimales con comas y puntos de tal manera o de tal otra, también deberemos usar en este punto la información cultural.

Nos vemos en la próxima entrega.

Entregas anteriores

Leer entrada anterior
Kinect + DepthJS + Ubuntu + FX = Minority Report

¿Te gustaría navegar a lo Minority Report? Pues bien, demos la bienvenida a DepthJS, una extensión del navegador web Mozilla...

Cerrar