Ing. Javier Leal

Ing. Javier Leal – Desarrollador FullStack

Utilidad de Expressiones Lambda en Silverlight

1 comentario

Muchos desarrolladores quiza han tendido a tener un poco de confunciones en lo que son las expressiones lambda por ellos aqui explico las diferentes maneras de unvocar un evento y la utilidad en aplicaciones silverlight.

Definicion:

"Una expresión lambda es una función anónima que puede contener expresiones e instrucciones y se puede utilizar para crear delegados o tipos de árboles de expresión"

Normalmente cuando queremos hacer un boton que tenga una funcion especifica simplemente lanzamos el boton a la pantalla y le damos soble click y ya podemos escribir el codigo del evento click, o nos vamos a propiedades eventos, seleccionamos el evento que deseamos doble click y ya tenemos el codigo.

En silverligh cuando ya entramos en un nivel mal alto de desarrollo en algun momento les tocara hacer codigo dinamico, donde el boton o el objeto ya no esta en pantalla ni podemos hacerle click ni eliges su evento sino que hacer directamente desde codigo un ejemplo sencillo es tenemos un nuevo proyecto.

Y queremos agregar un boton en pantalla de manera dinamica y al presionar click hacer un evento muy simple de esta manera hariamos el boton.

public partial class MainPage : UserControl

{

    public MainPage()

    {

        InitializeComponent();

 

        Button DinamyButton = new Button();

        DinamyButton.Height = 100;

        DinamyButton.Width = 100;

        DinamyButton.Content = "Boton Dinamico";

 

        LayoutRoot.Children.Add(DinamyButton);

       

    }

 

}

Con este codigo ya tenemos agregado a nuestra pantalla un toton de manera dinamico directo desde codigo sin diseñador aqui para nanejar los eventos existen dos maneras de que de este objeto o clase de tipo boton poder agregar una expression lambda para cualquier de sus eventos.

PRIMERA OPCION

Llamar al evento click agregar los valores += y presionar dos veces tabulador automaticamente se creara el evento en la clase actual.

image

public MainPage()

{

    InitializeComponent();

 

    Button DinamyButton = new Button();

    DinamyButton.Height = 100;

    DinamyButton.Width = 100;

    DinamyButton.Content = "Boton Dinamico";

    DinamyButton.Click +=new RoutedEventHandler(DinamyButton_Click);

    LayoutRoot.Children.Add(DinamyButton);

    

}

 

void DinamyButton_Click(object sender, RoutedEventArgs e)

{

    throw new NotImplementedException();

}

Ya sabemos que hacer con el nuevo metodo que se agrego recibiendo un sender y un EventArt

SEGUNDA OPCION

Al igual que la forma anterior usamos el += pero en vez de presionar tabulador agregamos entre parendersis dos variables separadas por coma, estas variables normalmente son s,e donde s es de sender y e de EventArt luego de estas variables se coloca => mas las llaves que lleva todo evento cerradas por un punto y coma y ya dentro de las llaves agregamos nuestro evento quedaria asi..

public MainPage()

{

    InitializeComponent();

 

    Button DinamyButton = new Button();

    DinamyButton.Height = 100;

    DinamyButton.Width = 100;

    DinamyButton.Content = "Boton Dinamico";

    DinamyButton.Click += (s, a) => 

    { 

        //codigo del evento del  boton

    };

    LayoutRoot.Children.Add(DinamyButton);

    

}

No solamente las expressiones lambda nos sirven para esto sino para un gran numero de ocaciones mas sin embargo el enfoque del articulo fue en silverlight pero aqui les dejo un material mas completo.

Forma de las expresiones lambda

Las expresiones lambda en C# se escriben según el patrón descrito a continuación, al que le siguen algunos ejemplos que lo ilustran e introducen algunas particularidades.

Forma general: parámetros => expresión, donde:
- parámetros: lista de parámetros separados por comas
- "=>" : separador.
- expresión: implementación de las operaciones a realizar


num => num * 2     // Lambda con un parámetro que retorna                   

                   // el doble del valor que se le pasa.

(a, b) => a + b    // Lambda con dos parámetros que retorna                   

                   // la suma de ambos

.num => {                     // Lambda con cuerpo que recibe un    

int x = new Random().Next();  // entero, y retorna la suma de éste   

return num+x;                 // con un número aleatorio.

}

() => DateTime.Now    // Lambda que no recibe parámetros                   

                      // y retorna la fecha y hora del sistema.

msg => Console.WriteLine(msg); // Recibe un parámetro, realiza una                                

                               // acción y no retorna nada.

Autor: Ing. Javier J. Leal H.

Coordinador de Requerimientos en Traetelo.com, Trainer en Lourted, Amantes de nuevas Tecnologías Desarrollador es .NET, Windows 10, Influenciador y Orador en Actividades Tecnológicas Microsoft.

Un pensamiento en “Utilidad de Expressiones Lambda en Silverlight

  1. Pingback: Agenda de la Comunidad « MSExpertos

Deja un comentario