Foros del Web » Programación para mayores de 30 ;) » .NET »

que significa esta Sintaxis

Estas en el tema de que significa esta Sintaxis en el foro de .NET en Foros del Web. Hola que significa esta sintaxis this.Loaded += (s, e) => { DiscoverKinectSensor(); }; this.Unloaded += (s, e) => { this.Kinect = null; }; me refiero ...
  #1 (permalink)  
Antiguo 31/05/2012, 21:41
 
Fecha de Ingreso: marzo-2006
Mensajes: 329
Antigüedad: 18 años, 1 mes
Puntos: 1
que significa esta Sintaxis

Hola

que significa esta sintaxis

this.Loaded += (s, e) => { DiscoverKinectSensor(); };
this.Unloaded += (s, e) => { this.Kinect = null; };

me refiero a la parte: (s, e) => , no se lo que significa
  #2 (permalink)  
Antiguo 01/06/2012, 03:13
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: que significa esta Sintaxis

Con esa sintaxis estás creando una expresión lambda anónima.

En tu caso, se está creando una función anónima que recibe dos parámetros. Los tipos de los parámetros se infieren automáticamente al asignar la función anónima al evento Loaded o Unloaded. En el caso particular, s es de tipo object y e es de tipo EventsArgs.

Todas estas sentencias son equivalentes:

Código C#:
Ver original
  1. //Con delegado anónimo
  2. this.Loaded += new EventHandler(delegate(object s, EventArgs e) { DiscoverKinectSensor(); });
  3.  
  4. //Con delegado anónimo (forma corta)
  5. this.Loaded += delegate(object s, EventArgs e) { DiscoverKinectSensor(); };
  6.  
  7. //Lambda con parámetros explícitos
  8. this.Loaded += (object s, EventArgs e) => { DiscoverKinectSensor(); }
  9.  
  10. //Pasando una función
  11. this.Loaded += new EventHandler(example);
  12.  
  13.  
  14. private void example(object s, EventArgs e) {
  15. DiscoverKinectSensor();
  16.  }


Espero que te haya servido y saludos

Etiquetas: c#
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:02.