Vous êtes sur la page 1sur 2

C# Mtodos Annimos o Anonymous Methods.

Que son los mtodos annimos? Como usarlos? Donde ver un ejemplo prctico? Si quieres aclarar alguna de estas preguntas, estas en el artculo indicado. Explicaremos mediante ejemplos simples y prcticos como, donde y cuando usar los mtodos annimos. Los mtodos annimos (Anonymous Methods) son una de las novedades que se incorporaron en la versin de C# 2.0. Y estn concebidos para simplificar la definicin de eventos, especialmente cuando son pocas las lneas asociadas a estos eventos. Pero como siempre veamos un ejemplo de uso de un mtodo annimo para comprenderlos mejor:
Mtodos Annimos, Ejemplos

El ejemplo que explicaremos a continuacin no tiene demasiado sentido pero lo usaremos para poder comprender mejor los mtodos annimos. En nuestro ejemplo tendremos una pagina web que contendr 2 botones y un label, asociaremos al evento click de cada botn un mtodo annimo, pero veamos primero el cdigo aspx:
<div> <asp:Button ID="btnMetodoAnonimo1" runat="server" Text="M. Annimo 1" /> <asp:Button ID="btnMetodoAnonimo2" runat="server" Text="M. Annimo 2" /> <br /><br /> <asp:Label ID="lblMetodoAnonimo" runat="server"></asp:Label> </div>

Veamos ahora el cdigo C#, que es donde definiremos los mtodos annimos que es el objetivo de este post:
protected void Page_Load(object sender, EventArgs e) { //Definamos el mtodo annimo y asocimoslo al evento click btnMetodoAnonimo1.Click += delegate { lblMetodoAnonimo.Text = "Hemos hecho click en el botn M.Annimo 1."; }; //Definamos el mtodo annimo y asocimoslo al evento click btnMetodoAnonimo2.Click += delegate (object objSender, EventArgs evArg) {lblMetodoAnonimo.Text=evArg.ToString(); }; }

En el cdigo expuesto hemos definido un mtodo annimo que asociamos al delegado del evento click. Otra forma de haber hecho esto mismo sin usar mtodos annimos, seria:
btnMetodoAnonimo1.Click += new System.EventHandler(btnMetodoAnonimo1_Click); private void btnMetodoAnonimo1_Click(object sender, System.EventArgs e) { lblMetodoAnonimo.Text = "Hemos hecho click en el botn M.Annimo 1."; }

Al comparar los cdigos y las formas de lograr el mismo objetivo, te percataras que es mucho mas simple hacerlo usandomtodos annimos, aunque he de reconocer que es menos comprensible la lectura del cdigo. Pero si los usamos nos evitamos incluir toda la declaracin de un mtodo para algo tan simple; y es aqu donde son prcticos los mtodos annimos. La diferencia entre ambas tcnicas es que ahora no nos hace falta definir una funcin, lo hace automticamente por nosotros el compilador a la hora de crear el ejecutable. Nota: Un mtodo annimo nos permite definir una funcin de manera implcita, sin necesidad de declararla.

Nota: En versiones de C# anteriores a la versin 2.0, la nica manera de declarar un delegado era utilizar mtodos con nombre. C# 2.0 introdujo los mtodos annimos, mientras que, en C# 3.0 y versiones posteriores, las expresiones lambda reemplazan a los mtodos annimos como la manera preferente de escribir cdigo insertado. No obstante, la informacin sobre los mtodos annimos de este tema tambin se aplica a las expresiones lambda.

Vous aimerez peut-être aussi