Alex Rivera | Logout

C# => operator?

Asked 2011-04-25T17:47:49.660
22

I have a question about the => operator in C#.

I am looking at the Expression Blend 4 samples. There is one line in the Contact sample which includes:

//In C:\Program Files (x86)\Microsoft Expression\Blend 4\Samples\en\Contacts\
//Contacts\ViewModels\ContactsViewModel.cs: 

contactDetailWindow.Closed += (o, e) =>
{                              
   finishedCallback(contactDetailWindow.DialogResult);

   // Or, C:\Program Files (x86)\Microsoft Expression\Blend 4\Samples\en\
   // Contacts\Contacts\ViewModels\ContactsViewModel.cs
   this.EditContact(newContact, dialogResult =>
   {
        if (dialogResult.HasValue && dialogResult.Value)
        {
        this.Contacts.Add(newContact);
        }
   });
};

What is the => operator actually doing? Is it overriding something?

Edit
Report

1 Answer

20

=> is a lambda expression operator you can think of it as an anonymous function in javascript

in this case

ContactDetailWindow.Closed += (o, e) => { finishedCallback(contactDetailWindow.DialogResult);

it is creating a function that is being used as the handler for the closed event. The complier can infer the types of o and E since it knows the defintion of of the closed delelegate.

answered 2011-04-25T17:53:08.410

Your Answer