martes, 22 de enero de 2008

Conversiones entre formatos de variables (TryParse)

Los que solemos programar en Visual Basic .Net estamos acostumbrados a utilizar una serie de funciones y métodos que nos proporciona el propio lenguaje, pero que sin embargo no aparecen en otros lenguajes soportados por el framework (como C# por ejemplo).

Una de estas funciones es isnumeric(), una auténtica joya que te decie si una variable es numérica o no. Pero ¿existen alternativas? Pues si. En otros lenguajes (y en Visual Basic .Net también) tenemos tryparse, un método que se le aplica al tipo de la variable y que te dice si la variable es numérica o no. Veamos un ejemplo:

Dim s As String
Dim result As Double
Dim returnValue As Boolean

s = "cadena"

returnValue = Double.TryParse(s, result)

MessageBox.Show(returnValue)

En este caso tryparse nos devuelve false porque la variable s es una cadena y no se puede convertir a double. Dicho de otro modo, lo que hacemos con tryparse es intentar "parsear" la variable a otro tipo y ver lo que pasa. Algo así como ¿puedo cambiar la variable s a double?. Si se puede, tryparse nos devuelve un true, y si no se puede (como este caso), nos devuelve false. De hecho, en este ejemplo, si cabiamos el valor de s por un "2" veremos que tryparse nos devuelve un true.

Como veis, es otra manera de realizar un isnumeric que casi todos los programadores de Visual Basic solemos utilizar a diario.

Este método de tryparse se encuentra en muchos tipos de datos, y si buscais en la ayuda del msdn vereis que tenemos:

Int16.TryParse
Byte.TryParse
SByte.TryParse
DateTime.TryParse
Double.TryParse
Int32.TryParse
Decimal.TryParse

No hay comentarios: