C # => оператор?

У меня вопрос о операторе => в C #.

Я просматриваю образцы Expression Blend 4. В образце «Контакт» имеется одна строка, которая включает:

 //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); } }); }; 

Что фактически делает оператор => ? Это что-то главное?

=> является оператором выражения lambda, вы можете думать об этом как анонимную функцию в javascript

в этом случае

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

он создает функцию, которая используется как обработчик закрытого события. Составитель может вывести типы o и E, так как он знает, что происходит с закрытым делегататом.

Это называется lambda-оператором .

  b.Click += (s, e) => Log("Sender :" + s + "EventArgs " + e); 

идентична

 b.Click += b_Click; void b_Click(object sender, EventArgs e) { Log("Sender :" + sender + "EventArgs " + e); } 

или

 b.Click += delegate(object sender, EventArgs e) { Log("Sender :" + sender + "EventArgs " + e); }; 

Это выражение лямбды. Нижеследующее определяет метод анома, ожидающий два параметра. Внутри фигурных скобок, очевидно, находится тело метода:

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

Лямбда-выражения трудно объяснить в нескольких предложениях. Думаю, вам нужно взглянуть на документацию и некоторые примеры.

  • Зачем использовать std :: bind over lambdas в C ++ 14?
  • Java 8 привязанный метод ссылки?
  • Отличный () с лямбдой?
  • Несколько заказов с помощью LINQ
  • В чем разница между привязкой лямбды и метода на уровне выполнения?
  • LambdaConversionException с дженериками: ошибка JVM?
  • Переменная, используемая в lambda-выражении, должна быть окончательной или эффективно конечной
  • Как проверить нули в глубоком lambda-выражении?
  • Java 8 Lambda Expressions - о нескольких методах в вложенном classе
  • Лямбда эта ссылка в java
  • Назначение третьего аргумента функции «уменьшить» в функциональном программировании Java 8
  • Давайте будем гением компьютера.