Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
898
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
950
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
940
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1725
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4398
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Что такое appliance и как использовать выражения lambda?
Я читал, что выражения Lambda являются невероятно мощным дополнением к C#,, но я нахожу себя озадаченным ими. Как они могут улучшить мою жизнь или сделать мой код лучше? Может ли кто-нибудь указать на хороший ресурс для изучения таких выражений?
Они кажутся чертовски крутыми, но как они связаны с моей жизнью day-to-day в качестве разработчика asp.net?
Edit: Спасибо за примеры и спасибо за ссылку на статьи Эрика Уайта. Я все еще перевариваю их сейчас. Один быстрый вопрос: Являются ли выражения lambda полезными для чего-либо, кроме запроса? Каждый пример, который я видел, был конструкцией запроса.
: являются ли выражения lambda полезными для чего-либо, кроме запроса
: являются ли выражения lambda полезными для чего-либо, кроме запроса
Выражения Ламба - это не что иное, как удобный способ написания функции 'in-line'.
Таким образом, они полезны в любом месте, где вы хотите немного кода, который может быть вызван, как будто это отдельная функция, но который на самом деле написан внутри своего вызывающего объекта. (В дополнение к хранению связанного кода в одном и том же месте в файле, это также позволяет вам играть в забавные игры с переменной областью действия - см. 'closures' для справки.)
Примером использования non-query-related lamba может быть бит кода, который делает что-то асинхронно, что вы начинаете с ThreadPool.QueueUserWorkItem. Важным моментом является то, что вы также можете написать это с помощью анонимных делегатов (которые были C#2 введением) или просто отдельной функции-члена класса.
Это http://blogs.msdn.com/jomo_fisher/archive/2005/09/13/464884.aspx -превосходное step-by-step Введение во все эти вещи, которое может вам помочь.
Лямбды приводят функциональное программирование к C#. Это анонимные функции, которые могут передаваться в качестве значений некоторым другим функциям. Больше всего используется в LINQ.
Вот надуманный пример:
List<int> myInts = GetAll();
IEnumerable<int> evenNumbers = myInts.Where(x => x % 2 == 0);
Теперь, когда вы foreach через evenNumbers ламда
x=> x % 2 == 0
затем применяется в качестве фильтра к myInts.
Они становятся действительно полезными для повышения читаемости сложных алгоритмов, которые будут иметь много вложенных условных обозначений IF и циклов.
Вот простой пример того, что вы можете сделать с лямбдами:
List<int> myList = new List<int>{ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
myList.RemoveAll(x => x > 5);
//myList now == {1,2,3,4,5}
Метод RemoveAll принимает предикат (делегат, который принимает аргументы и возвращает bool), все, что соответствует ему, удаляется. Использование выражения lambda делает его проще, чем фактическое объявление предиката.