Hasta la versión 2.0 del Framework.NET, la declaración de un delegado sólo era posible programando métodos con nombre. A partir de la versión 2.0 se introduce el concepto Método Anónimo.

Un método anónimo nos permite definir una función de manera implícita, sin necesidad de declararla dándole un nombre.

Como los Métodos Anónimos no tienen nombre, la forma de invocarlos es a través de un delegado.

Usar un Método Anónimo es pasar como parámetro a un bloque de código definido como tipo Delegate, sin asignarle un nombre.

Por ejemplo, si en el constructor de un formulario insertamos la siguiente línea de código:

 

  this.Click += delegate { MessageBox.Show(@”Funciona.”); };

 

Al hacer un click sobre el formulario se desplegará un MessageBox que muestre el string “Funciona”.

En el ejemplo podemos ver que en la misma línea se define el Delegate y su implementación. Eso es exactamente un Método Anónimo.

Los Métodos Anónimos reducen la sobrecarga de código al crear instancias de delegados sin tener que crear métodos independientes.
En caso que quisiéramos capturar algún parámetro del evento, sólo tenemos que declarar los argumentos a continuación de la palabra delegate:

 

  this.Click += delegate(object sender, EventArgs e)

  {

      System.Windows.Forms.MessageBox.Show(@”Funciona. “ + e.ToString());

  };

 

Para el uso de Métodos Anónimos existen algunas restricciones:

  • No se puede invocar código no manejado en un Método Anónimo.
  • Las variables declaradas en el mismo bloque donde se declara un Método Anónimo se llaman Externas (Outer) al Método Anónimo. No pueden ser accedidos parámetros de ámbito externo calificados con ref u out.
  • En un Método Anónimo no pueden usarse goto, break ni continue si apunta fuera del ámbito del Método Anónimo, tampoco pueden usarse desde fuera del Método Anónimo si el destino se encuentra dentro del bloque del Método Anónimo. Más allá de Método Anónimo, siempre es bueno evitar el uso de goto, break y continue.
  • No pueden usarse Método Anónimo en el lado izquierdo del operador is.

Los Métodos Anónimos son ideales en el manejo de eventos cuando lo que hay que hacer son cosas simples permitiendo un código compacto. Pero no hay que perder de vista que el abuso de esta técnica puede tornar nuestro código como algo muy difícil de leer y entender.