2008-10-07 28 views
6

Respuestas a una publicación reciente (¿Alguna posibilidad de imitar los tiempos() Método de Ruby en C#?) Utilice el operador => en los ejemplos de uso. ¿Qué hace este operador? No puedo ubicarlo en mi libro de C#, y es difícil buscar símbolos como este en línea. (No pude encontrarlo.)¿Qué significa el operador C# =>?

Respuesta

15

No es realmente un operador como tal, es parte de la sintaxis de las expresiones lambda. En particular, => es el bit que separa los parámetros del cuerpo de la expresión lambda.

¿Su portada del libro es C# 3.0? Si no, no incluirá expresiones lambda. Si lo hace, ¡realmente debería cubrirlos! Esperemos que con la terminología correcta, podrá encontrarlo en el TOC o índice.

EDIT: Un poco más de información: Una expresión lambda es una pieza de azúcar sintáctica para crear una instancia de un delegado o un árbol de expresiones (este último es nuevo para .NET 3.5). Las expresiones Lambda reemplazan casi por completo a los métodos anónimos (de C# 2.0) aunque no respaldan la noción de "no me importan los parámetros" en la forma en que lo hacen los métodos anónimos.

+0

Ah, mi libro no cubre C# 3.0, por lo que no es de extrañar que no pudo localizarlo! –

+0

¿Puedo preguntarle qué quiere decir con '' No me importan los parámetros '' de la forma en que lo hacen los métodos anónimos''? ¡Gracias! – xanatos

+1

@xanatos: por ejemplo, para crear un 'EventHandler' que no use el remitente o args, puede usar' delegate {Console.WriteLine ("Called"); } 'sin especificar una lista de parámetros. Eso es convertible a * any * tipo delegado con un tipo de retorno de vacío y todos los parámetros "in". –

1

, que será para una expresión lambda:

http://msdn.microsoft.com/en-us/library/bb397687.aspx

Un ejemplo es aquí:

MyControl.OnMouseDown += (sender, e) => 
{ 
    // Do something in the mouse down event 
}; 

Aquí he creado un delegado de eventos expresión lambda. Básicamente me ahorra tener que crear una función separada para él en la clase.

1

Una expresión lambda es una función anónima que puede contener expresiones y sentencias, y se puede usar para crear delegados o tipos de árbol de expresiones.

Todas las expresiones lambda utilizan el operador lambda =>, que se lee como "goes to". El lado izquierdo del operador lambda especifica los parámetros de entrada (si los hay) y el lateral derecho titular del bloque de expresión o declaración

http://msdn.microsoft.com/en-us/library/bb397687.aspx

1

El => Moneda se llama el operador lambda .

Se utiliza en expresiones lambda para separar las variables de entrada en el lado izquierdo del cuerpo lambda en el lado derecho.

MSDN