Developer's Diary

28 mayo, 2011

Dynamics C#

Buenas noches,

 

Ante todo, pido disculpas por mi falta de actualización en el blog, aunque mis compañeros de bitacoras hayan escrito, estamos bajando el ritmo de actualización y eso es algo que sabemos y no nos gusta. Pero escribir un documento de este tipo, suele ser algo que requiera de un rato que usar.

 

Bueno, hoy voy a hablar de una de las mejoras del nuevo Framework 4.0. Aunque en más de un medio se haya hablado de ello, creo que no hay demasiados artículos en español que hablen al respecto, me refiero a los Dynamics.

 

 

El tipo Dynamic es un tipo de dato que es completamente maleable. Parafraseando a Bruce Lee, Be water my friend. Que queremos decir con esto; pues que cualquier variable que declaremos como dynamic se comportara de una manera maleable, pudiendo tomar distintas formas: un string, un entero, un tipo double, etc.

 

Podremos pensar que este tipo de dato puede ser funcional, pero no es interesante abusar de estos ya que su funcionamiento no puede ser el que quisieramos, además de que aumenta el uso de memoria.

 

La manera de declarar un tipo dynamic es muy sencilla, es así:

 

dynamic variabledinamica;

 

El dato se modificara según el valor que contega, podemos verificar de que tipo de dato es, usando el método GetType(). Ya que el intelisense de Visual Studio no funcionara, la razón, es muy sencilla, no tenemos anunciado el tipo de clase de la que se trata. Ojo, debemos tener cuidado, si fuesemos a acceder a un método, el cual no existiese en esa clase, se producirá una excepción.

 

Como comentabamos, al usar el método GetType() para obtener el tipo de dato del que se trata, nos dara un valor diferente según el tipo de dato del que se trate. Veamoslo con un ejemplo:

 

dynamic variabledinamica = “2”;

Console.Writeline(variabledinamica.GetType().ToString()); //Nos devolvera System.String

variabledinamica = 2;

Console.Writeline(variabledinamica.GetType().ToString()); //En este caso nos devolverá un System.Int32

variabledinamica = 2.2;

Console.Writeline(variabledinamica.GetType().ToString()); //Se mostrara un System.Double

 

Otro de los potenciales que tiene dynamic, es que podemos declarar colecciones genericas, por lo tanto tendremos colecciones de dinamics, lo que conlleva que podremos introducir todo tipo de objetos dentro de esa colección, desde nuestras propias clases como, clases convencionales.

 

Ahora pasaremos a los inconvenientes que veo con los dynamics, el uso de estos debe hacerse con extremo cuidado, la manera de actuar de los dynamics puede tener un funcionamiento que vaya en contra nuestra. Por ejemplo, si tenemos dos variables dynamic, una que contenta un valor de string y otra de un entero, tal vez querramos que se haga una suma, mientras se concatene como si fuesen cadenas.

Si no sabemos usarla con conciencia, nos puede generar errores, porque nos ingrese tipos de datos que no deseamos en esa operación.

 

Tampoco podemos abusar de ellos, el uso de memoria es mayor que una variable convencional, por las pruebas realizadas, unas cinco veces más que con variables estandar.

 

Hasta aquí, este pequeño post de los dynamics. No debemos abusar del uso de estos por los inconvenientes que hemos indicado, el aumento del consumo de memoria por su parte y que el funcionamiento es arbitrario. No obstante, nos podemos encontrar con problemas de diseño dentro de nuestras aplicaciones en los cuales la única manera de solventarlos sea de esta.

 

Un saludo.

 

 

 

 

Anuncios

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: