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.