Foros del Web » Programación para mayores de 30 ;) » .NET »

Algo parecido a isnumeric() en c# ¿?

Estas en el tema de Algo parecido a isnumeric() en c# ¿? en el foro de .NET en Foros del Web. La pregunta quizas es un poco tonta. pero, o estoy empanao, o no encuentro una solucion totalmente satisfactoria a un problema sencillo. Tengo una función ...
  #1 (permalink)  
Antiguo 23/07/2010, 05:10
 
Fecha de Ingreso: junio-2009
Mensajes: 11
Antigüedad: 15 años, 5 meses
Puntos: 0
Algo parecido a isnumeric() en c# ¿?

La pregunta quizas es un poco tonta. pero, o estoy empanao, o no encuentro una solucion totalmente satisfactoria a un problema sencillo.

Tengo una función que recibe un paramétro de tipo Object. Que puede ser literalmente cualquier cosa. Y tiene que dar un tratamiento diferente a los objetos de tipo fecha y numéricos. para el resto de objetos se trata su representacion ToString()

private void Mifuncion(Object Obj)
{
if (Obj==null) { TratamientoParaStrings("");}
else if (Obj.GetType() is string) { TratamientoParaStrings(Obj);}
else if (Obj.GetType() is DateTime) { TratamientoParaFechas(Obj);}
else if (Obj.GetType() is ¿¿ Cualquier tipo de dato numérico??) { TratamientoParaNumeros(Obj);
else TratamientoParaStrings(Obj.ToString())
}



Para diferenciar los numéricos he probado con:

if (Double.TryParse(Obj.ToString(), out retnum)) pero no me sirve porque el resultado de ToString() en algunos objetos que no son números puede dar como resultado una cadena de caracteres númericos y esos no los debo tratar como número.

Si utilizo GetType ¿Tendria que compara con todos los posible tipos numericos de C# ? ¿Existe alguna forma mejor de hacerlo?
Gracias.
  #2 (permalink)  
Antiguo 24/07/2010, 08:57
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 11 meses
Puntos: 22
Respuesta: Algo parecido a isnumeric() en c# ¿?

se me ocurre que lo puedes hacer de la siguiente manera

Código C#:
Ver original
  1. double? num = obj as double;
  2.  
  3. if(num != null)
  4. {
  5.     //Tratamiento para numeros
  6. }


Saludos

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:55.