ATENCIÓN: este contenido tiene más de 2 años de antigüedad y, debido a su temática, podría contener información desactualizada o inexacta en la actualidad.
En la plataforma .Net es posible crear métodos y clases genéricas que, independientemente del tipo que utilicen, trabajen de la misma manera. En este artículo, nuestro tutor José M. Alarcón, se valdrá de dicha funcionalidad para mostrarnos cómo hacer una función genérica que sirva para realizar transformaciones entre dos tipos de datos. Dicho de otro modo, el objetivo de la nueva función es devolver el mismo valor que tenía la variable o referencia original pero con un tipo de dato diferente.
Algunos de vosotros a estas alturas estaréis pensando que, desde la primera versión de .Net, ya existe una función similar: el método ChangeType de la clase Convert. Sí pero no :) Este método posee varias sobrecargas, siendo la más comúnmente utilizada ChangeType(Object, Type). Ésta toma como primer parámetro el valor a convertir, y como segundo, una definición de tipo al cual queremos convertir el anterior. Veámoslo con un sencillo ejemplo,
double d = 12;
int i = (int) Convert.ChangeType(d, typeof(int));
Como se aprecia en el código de ejemplo, la forma "genérica" para pasar desde un double a un entero la sintaxis resulta un tanto liosa y difícil de leer. Además el método devuelve un objeto que hay que convertir en su tipo adecuado subyacente, lo cual nos está alejando de nuestro objetivo inicial: hacer una función genérica.
Llegados a este punto, ¿cómo encapsulas esto en un método? Si se te ocurre alguna solución estaremos encantados de publicarla, si no, siempre puedes recurrir a la que propone nuestro tutor en su blog.
Autora de la imagen de cabecera Marisa Pérez. Foto usada bajo licencia Creative Commons.
Fecha de publicación: