Что означает оператор C # =>? - PullRequest
6 голосов
/ 07 октября 2008

Ответы на недавнее сообщение (есть ли шанс имитировать метод times () Ruby в C #?), Используйте оператор => в примерах использования. Что делает этот оператор? Я не могу найти его в своей книге на C #, и трудно найти такие символы в Интернете. (Я не смог его найти.)

Ответы [ 4 ]

15 голосов
/ 07 октября 2008

Это на самом деле не оператор как таковой, это часть синтаксиса лямбда-выражений. В частности => это бит, который отделяет параметры от тела лямбда-выражения.

Ваша книга покрывает C # 3.0? Если нет, то он не будет включать лямбда-выражения. Если это произойдет, это должно действительно покрыть их! Надеемся, что с правильной терминологией вы сможете найти ее в оглавлении или индексе.

РЕДАКТИРОВАТЬ: Немного больше информации: лямбда-выражение представляет собой кусочек синтаксического сахара для создания экземпляра делегата или дерева выражений (последнее является новым для .NET 3.5). Лямбда-выражения почти полностью заменяют анонимные методы (из C # 2.0), хотя они не поддерживают понятие «меня не волнуют параметры» так, как это делают анонимные методы.

1 голос
/ 08 октября 2008

Маркер => называется лямбда-оператором .

Используется в лямбда-выражениях для отделения входных переменных с левой стороны от тела лямбды с правой стороны.

* MSDN 1008 *

1 голос
/ 07 октября 2008

Лямбда-выражение - это анонимная функция, которая может содержать выражения и операторы и может использоваться для создания делегатов или типов дерева выражений.

Все лямбда-выражения используют лямбда-оператор =>, который читается как «идет». Левая часть лямбда-оператора указывает входные параметры (если есть), а правая часть содержит блок выражений или операторов

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

1 голос
/ 07 октября 2008

Это будет для лямбда-выражения:

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

Пример здесь:

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

Здесь я создал делегат события лямбда-выражения. Это в основном избавляет меня от необходимости создавать для него отдельную функцию в классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...