Un metodo anonimo es, como su nombre lo dice, un metodo que no tiene nombre, y que para invocarlo se hace uso de los Delegados.
Mediante los metodos anonimos, se reduce la sobrecarga de codificación al crear instancias de delegados sin tener que crear un método independiente.
Vamos aver un ejemplo, en el siguiente codigo vamos a utilizar un delegado que invocara a un metodo (metodo nombrado)
using System;
namespace MetodosAnonimosI
{
class Program
{
//Declaracion del delegado
delegate void z_delTipoDelegado();
//Metodo que devuelve la instancia de un delegado
static z_delTipoDelegado get()
{
return new z_delTipoDelegado(z_metMetodo);
}
//Metodo que sera invocado desde el delegado
static void z_metMetodo()
{
Console.WriteLine("Hola mundo desde el metodo");
}
static void Main(string[] args)
{
//instancia del delegado
z_delTipoDelegado z_varcioDelegado = get();
//al llamar la instancia del delegado, se ejecutara el metodo
z_varcioDelegado();
}
}
}

Ahora vamos a ver un ejemplo similar pero utilizando los metodos anonimos:
using System;
namespace ConMetodosAnonimos
{
class Program
{
//declaracion del delegado
delegate void z_delTipoDelegado();
//Este metodo devuelve una instancia del delegado
//no es necesario un metodo ya que el metodo esta
//dentro del delegado
static z_delTipoDelegado get()
{
return delegate()
{
Console.WriteLine("Hola mundo desde el metodo anonimo");
};
}
static void Main(string[] args)
{
//instancia del delegado
z_delTipoDelegado z_varcioDelegado = get();
//al llamar a ka instancia del delegado, se ejecutara
//el metodo anonimo declarado dentro de la instancia
//del mismo
z_varcioDelegado();
}
}
}

Se nota la diferencia, nuestro codigo se vuelve mas legible y elegante.
Si les interesa aqui estan los codigos de ambos ejemplos en VS2008: Click Aqui
Esto es el principio, continuara........
Ailas...................
0 comentarios:
Publicar un comentario
Click to see the code!
To insert emoticon you must added at least one space before the code.