PARA ESPERTOS: cast de un object usando la Reflection

20/08/2004 - 11:37 por Alejandro J. Gonzalez | Informe spam
Hola!

Lo que trato de esplicar no es simple!

Con el codigo obtengo la siguientes variables:
- Type theType : puede contener System.String, System.Int32,
System.DateTime.
- Object objA e objB: contienen datos de tipo theType.
- string operator: puede contener "=", "!=", ">", etc.

Tengo que confrontar los dos object, pero el siguiente codigo no es corecto:

switch (operator)
case (">"):
if ((theType)objA > (theType)objB)
return true;
...

Alguien sabe come resolver mi problema?
Creo que se pueda hacer algo con la reflection...

Thanks

Alejandro
 

Leer las respuestas

#1 A.Poblacion
20/08/2004 - 17:07 | Informe spam
Se me ocurre esto:

if (((IComparable)objA).CompareTo(objB) > 0) return true;

Con otros operadores, cambia el ">0" por "==0", "!=0" o "<0".

Esto funciona con cualquier tipo de variable que implemente el interface
IComparable, entre ellos los tres tipos que has mencionado. De paso, con
este método, te evitas tener que pasar el parámetro "theType".


"Alejandro J. Gonzalez" wrote in
message news:
Hola!

Lo que trato de esplicar no es simple!

Con el codigo obtengo la siguientes variables:
- Type theType : puede contener System.String, System.Int32,
System.DateTime.
- Object objA e objB: contienen datos de tipo theType.
- string operator: puede contener "=", "!=", ">", etc.

Tengo que confrontar los dos object, pero el siguiente codigo no es


corecto:

switch (operator)
case (">"):
if ((theType)objA > (theType)objB)
return true;
...

Alguien sabe come resolver mi problema?
Creo que se pueda hacer algo con la reflection...

Thanks

Alejandro


Preguntas similares