чайников - передача лямбды в функцию c#




Что хорошо использует лямбда-выражения, и как я могу научиться их использовать? (2)

: лямбда-выражения полезны ни для чего, кроме запроса

Выражения Lamba - не что иное, как удобный способ написания функции «in-line».

Поэтому они полезны в любом месте, где вам нужен код, который можно назвать так, как будто это отдельная функция, но которая фактически написана внутри его вызывающего. (В дополнение к сохранению связанного кода в том же месте в файле, это также позволяет вам играть в забавные игры с переменным охватом - см. «Закрытие» для справки.)

Примером использования lamba, не связанного с запросом, может быть немного кода, который делает что-то асинхронно, что вы начинаете с ThreadPool.QueueUserWorkItem. Важным моментом является то, что вы также можете написать это с помощью анонимных делегатов (которые были введением C # 2) или просто простой отдельной функцией класса.

Этот http://blogs.msdn.com/jomo_fisher/archive/2005/09/13/464884.aspx - превосходное пошаговое введение во все это, что может вам помочь.

На этот вопрос уже есть ответ:

Я читал, что Lambda Expressions - невероятно мощное дополнение к C #, но я нахожу себя озадаченным ими. Как они могут улучшить мою жизнь или сделать мой код лучше? Может ли кто-нибудь указать на хороший ресурс для изучения таких выражений?

Они кажутся классными, как черт, но как они относятся к моей повседневной жизни как разработчику asp.net?

Редактировать: Спасибо за примеры и спасибо за ссылку на статьи Эрика Уайта. Я все еще перевариваю их. Один быстрый вопрос: лямбда-выражения полезны ни для чего, кроме запроса? Каждый пример, который я видел, был конструкцией запроса.


Lambdas обеспечивает функциональную программирование на C #. Это анонимные функции, которые могут передаваться как значения для некоторых других функций. Используется больше всего в LINQ.

Вот надуманный пример:

List<int> myInts = GetAll();
IEnumerable<int> evenNumbers = myInts.Where(x => x % 2 == 0);

Теперь, когда вы заходите через evenNumbers, lamda

x=> x % 2 == 0

затем применяется как фильтр для myInts.

Они становятся действительно полезными для повышения удобочитаемости сложных алгоритмов, которые будут иметь множество вложенных условных выражений и циклов IF.





lambda