martes, 29 de abril de 2014

Métodos, Delegados Anónimos



Lo primero para ver este apartado es explicar que podemos encontrárnoslo como Métodos Anónimos o Delegados Anónimos, aunque también podemos referirnos a ellos como Funciones Anónimas, o Funciones o Métodos ‘Inline’. Aparecieron en la versión 2.0 del Framework y vinieron a cubrir la incapacidad de poder definir un método dentro de cualquier porción de código, sin tener que echar mano de la forma clásica [public/private void/int/string/ … nombreMétodo (parámetros)].


Esto como veremos en la siguiente entrega fue superado por creces con la introducción de la Expressiones Lambda en la versión del Framework 3.0 y con el concepto de Inferencia de Tipos, pero como veremos en esta hay una excepción que poseen los delegados anónimos que no pueden realizar las Expressiones Lambda.

martes, 22 de abril de 2014

Eventos - events




Los eventos son un tipo definido dentro del CLR que nos permite notificar a otros objetos algo que está sucediendo en el interior de nuestra clase. Para que estos objetos puedan ser informados, antes tienen que suscribirse al evento.


Desde la aparición de Visual Basic 6, normalmente achacamos los eventos a controles tales como Buttons, Combobox, DataGrids, etc., pero su aplicación y su enfoque va mucho más allá, y su uso en clases que no forman parte de la GUI, es tan normal, tan común y tan útil como en éstas.

El concepto de evento está completamente ligado al de delegado, ya que se nutre de estos para guardar las acciones que se suscriben al mismo, y así añadir su restricción de firma para estas acciones, de manera que solo se puedan suscribir a estos eventos los métodos que cumplan con la firma de su delegado.

martes, 15 de abril de 2014

Microsoft Active Profesional (MAP) 2014




En el momento de escribir esta entrada, no dejo todavía de sorprenderme de haber recibido este galardón por parte de Microsoft.


Cuando empecé este proyecto hace unos meses atrás, mi objetivo era intentar paliar la falta de información directa, concisa y sobre todo amplia de muchos de los temas que yo consideraba interesantes para la comunidad de .Net. Quería intentar acabar con esos ejemplos para mi gusto cortos que no mostraban toda la potencia y la versatilidad de los mismos, en principio en la lengua de Cervantes, para actualizarlos después en la de Shakespeare cuando tuviera un mejor manejo de este.


Delegados - Delegates - parte 3




La covarianza y la contravarianza son uno de esos conceptos dentro de la programación que a priori, no solemos verles una funcionalidad o un uso demasiado práctico, pero que cuando manejas, te das cuenta que vienen a romper una serie de limitaciones que sin su existencia nos haría tener que decir eso de ‘no se puede hacer’ en más ocasiones al día. 

Esto no es menos importante para LinQ  ya que tienen una aparición estelar con los delegados genéricos Func.

Para finalizar también veremos la posibilidad de realizar ejecuciones asíncronas con nuestros delegados.


jueves, 23 de enero de 2014

Delegados - Delegates - parte 2



Continuamos con la segunda parte de nuestros queridos delegados, esa clase tan útil, y utilizada por el framwork y tantas veces se nos hace tan complicada de entender.

En esta segunda parte nos centraremos principalmente en estudiar la clase base y los métodos y propiedades más importantes de ésta, que hacen que el delegado realice una series de funciones muy marcadas y en ocasiones totalmente transparentes para nuestro trabajo diario con ellos, ya que están ocultas dentro de la redefinición de operadores.


La segunda parte del post irá dirigida al uso de Generics con delegados. En ella profundizaremos en la importancia y la potencia que tienen para la ejecución de referencias a funciones y a métodos genéricos. También daremos un repaso a los delegados genéricos más importantes del Framework y de LinQ en general que no son otros que Func<T> y Action<T>.