Conversiones. TypeCode

10/02/2004 - 13:20 por Jordi Sole Tura | Informe spam
Hola, quisiera saber cómo hacer algo parecido a esto:

Tengo un objeto object del tipo que sea, y supongamos que
quiero hacer una especie de cast a un tipo determinado
que yo especifique.

public object MiFuncion(object valor, System.Type tipo)
{
return (CAST A tipo) valor;
}

Es decir si el parámetro es un objeto de tipo int, y le
indico que quiero un objeto de tipo string, pues la
función me devolvería un objeto que al fin y al cabo
seria un string.

Lo mismo podria pasar con otros tipos de datos: int,
double, datetime, long, etcétera.

Atentamente.

Preguntas similare

Leer las respuestas

#1 Marco A. Sánchez
10/02/2004 - 13:42 | Informe spam
Hola:

Hola, quisiera saber cómo hacer algo parecido a esto:

public object MiFuncion(object valor, System.Type tipo)
{
return (CAST A tipo) valor;
}



Si el tipo que quieres convertir implementa la interfaz IConvertible (todos
los tipos básicos lo hacen), el método Convert.ChangeType hace exactamente
lo que quieres.
Respuesta Responder a este mensaje
#2 A.Poblacion
10/02/2004 - 15:27 | Informe spam
Lo que quieres hacer es bastante inutil: Si haces un cast del valor a un
tipo y luego lo devuelves como resultado de una funciion de tipo Object, has
perdido el efecto del cast. Para eso basta que hagas "retun valor;", y el
efecto desde fuera de la función será exactamente el mismo.


"Jordi Sole Tura" wrote in message
news:dc2401c3efd0$39407ef0$

Hola, quisiera saber cómo hacer algo parecido a esto:

Tengo un objeto object del tipo que sea, y supongamos que
quiero hacer una especie de cast a un tipo determinado
que yo especifique.

public object MiFuncion(object valor, System.Type tipo)
{
return (CAST A tipo) valor;
}

Es decir si el parámetro es un objeto de tipo int, y le
indico que quiero un objeto de tipo string, pues la
función me devolvería un objeto que al fin y al cabo
seria un string.

Lo mismo podria pasar con otros tipos de datos: int,
double, datetime, long, etcétera.

Atentamente.
Respuesta Responder a este mensaje
#3 Pedro Luna Montalvo
10/02/2004 - 18:05 | Informe spam
Coincido completamente.

Recuerda que el cast desde un objeto a alguna de las clases desde donde
deriva es automatico.

Si tienes una clase Cliente, y de ahi deriva una clase ClienteVip, la
conversion de un objeto ClienteVip a Cliente es automatica y no requiere
ninguna sentencia o funcion especial.

Ahorarecuerda que todos los objetos derivan de System.Object, ´por lo
que, como anotan en el mensaje anterior, el cast que quieres hacer es
innecesario..

Saludos

Pedro

"A.Poblacion" escribió en
el mensaje news:Ovl4yJ$
Lo que quieres hacer es bastante inutil: Si haces un cast del valor a un
tipo y luego lo devuelves como resultado de una funciion de tipo Object,


has
perdido el efecto del cast. Para eso basta que hagas "retun valor;", y el
efecto desde fuera de la función será exactamente el mismo.


"Jordi Sole Tura" wrote in message
news:dc2401c3efd0$39407ef0$

Hola, quisiera saber cómo hacer algo parecido a esto:

Tengo un objeto object del tipo que sea, y supongamos que
quiero hacer una especie de cast a un tipo determinado
que yo especifique.

public object MiFuncion(object valor, System.Type tipo)
{
return (CAST A tipo) valor;
}

Es decir si el parámetro es un objeto de tipo int, y le
indico que quiero un objeto de tipo string, pues la
función me devolvería un objeto que al fin y al cabo
seria un string.

Lo mismo podria pasar con otros tipos de datos: int,
double, datetime, long, etcétera.

Atentamente.


Respuesta Responder a este mensaje
#4 Marco A. Sánchez
11/02/2004 - 10:25 | Informe spam
Hola:

Recuerda que el cast desde un objeto a alguna de las clases desde donde
deriva es automatico.



Si los tipos implicados son compatibles, no existe ningún problema y es
directo, como bien indicaís. Sin embargo, lo que quiere hacer Jordi no es
ésto (al menos eso entendí en el mensaje original). El problema es convertir
entre tipos que no comparten la misma línea de herencia (por ejemplo entre
Double y Int64 o String). En este caso, la solución que indiqué en mi primer
mensaje es la correcta, pues en este caso un cast no funciona y es necesaria
una verdadera conversión (que sólo es posible en casos específicos).
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida