2011-09-29 20 views
6

¿Qué significa =>? Aquí hay un broche de presión código:¿Qué significa '=>'?

Dispatcher.BeginInvoke((Action)(() => { trace.Add(response); })); 
+0

Además, el ejemplo que está viendo hace que sea muy difícil entender lo que hace el operador Lambda. Vea algunos de los ejemplos a continuación y en los enlaces a continuación. –

+0

No olvide marcar la respuesta como aceptada si obtuvo la información que desea ' –

+0

Creo que esta pregunta generará muchas respuestas que tengan un significado similar. –

Respuesta

7

que es la sintaxis simplificada del delegado anónimo. dice 'va a'. equivalente a Dispatcher.BeginInvoke((Action)delegate() { trace.Add(response); });

1

=> es un operador denominado Lambda operador

Se utiliza para crear un => es lambda operador de expresión lambda expression

2

que indican que el código es expresión lambda.

(param) => expr(int x) = > { return x + 1 }; 

o

param => exprx=> x + 1;> 

¿Cuál es la expresión Lambda?

* Lambda expression is replacement of the anonymous method avilable in C#2.0 Lambda 
    expression can do all thing which can be done by anonymous method. 
* Lambda expression are sort and function consist of single line or block of statement. 

Leer más: Lambda Expressions

+1

Hay una "b" en "lambda" – phoog

0

Es un operador lambda que se lee como "va a"

0

Este "=>" significa el uso de la sintaxis de expresiones lambda en C#.

Esta sintaxis está disponible desde Visual Studio 2008 en .NET 3.5 (C# 3.0). Este es el MSDN official documentation of lambda expression in C#.

El código anterior es el mismo que el delegado anónimo en ya disponible desde C# 2.0

Su código:

Dispatcher.BeginInvoke((Action)(() => { trace.Add(response); })); 

se traduce en:

Dispatcher.BeginInvoke(new delegate() { trace.Add(response); }); 

Esos dos códigos esencialmente tienen la misma semántica.

0

Vale la pena señalar que una sola expresión lambda no necesita el {} alrededor del cuerpo, ni necesita un punto y coma, por lo que puede simplificar su código (ligeramente) a.

Dispatcher.BeginInvoke((Action)(() => trace.Add(response)));