Делегаты и лямбды и LINQ, о, мой!

Ваш вопрос подразумевает, что был бы тривиальный способ достижения вашего варианта использования с помощью встроенных макетов в Vaadin 7 или Vaadin 8 без использования CSS. То, что вы описываете при автоматическом переключении между горизонтальным и вертикальным режимами в зависимости от размера экрана, звучит как нечто, требующее определенной степени адаптивного макета, что обычно подразумевает непосредственное использование CSS.

То, что вы могли бы сделать в более старых версиях - это иметь логику Java, которая использует либо VerticalLayout, либо HorizontalLayout в зависимости от ситуации. Эти два класса все еще доступны для одного и того же вида использования. API-интерфейсы были изменены, чтобы лучше соответствовать базовой функциональности flexbox, но общая функциональность остается той же.

Вы также можете обратиться к FormLayout (часть базовой структуры) или к макету Board (отдельное дополнение), которые оба предоставляют некоторую адаптивную функциональность. Однако они изначально предназначены для слегка отличающихся вариантов использования (соответственно форм и панелей мониторинга), поэтому может быть немного сложным сделать так, чтобы они точно соответствовали вашим требованиям.

12
задан Jon Skeet 13 January 2009 в 16:11
поделиться

3 ответа

1) Те описания звучат симпатичными с точностью до меня. Иногда анонимные методы и лямбда-выражения должны будут создать новый тип, чтобы поставить цель делегата в, таким образом, они смогут действовать как закрытия.

2/3) Я читал бы немного, пока Вы не счастливы с делегатами, анонимными методами и лямбда-выражениями. Я выделяю главу связанным с делегатом изменениям в каждом C# 2.0 и C# 3.0 в C# подробно, хотя, конечно, другие книги вдаются в подробности также. У меня есть статья также, если это помогает.

Что касается примеров - делегаты используются во многих различных целях. Они - все различные способы посмотреть на ту же функциональность, но они могут чувствовать себя очень отличающимися:

  • Предоставление кода для вызова, когда Вы начинаете новую дискуссию
  • Реакция на события UI
  • Обеспечивая фильтр, выбор, заказывая и т.д. для запроса LINQ
  • Обеспечение обратного вызова для того, когда асинхронная операция закончилась

Если бы у Вас есть какие-либо определенные ситуации, Вы хотели бы пример, на который было бы легче ответить.

Править: Я должен указать, что это - хорошие новости, что Вы только работаете с LINQ к Объектам и LINQ к XML в данный момент, поскольку это означает, что Вы еще не должны понимать деревья выражений. (Они прохладны, но один шаг за один раз...) LINQ к XML является действительно просто API XML, который работает приятно с LINQ - от того, что я помню, единственные времена, Вы будете использовать делегатов с LINQ к XML, - когда Вы на самом деле звоните в LINQ в Объекты. (Это очень хорошо сделать, по общему признанию - но это означает, что можно снова использовать то, что Вы уже изучили.)

Поскольку Вы уже получили C# подробно, главы 10 и 11 обеспечивают довольно много примеров использования лямбда-выражений (и запросите выражения, которые переводятся в лямбда-выражения) в LINQ. Глава 5 имеет несколько различных примеров использования делегата.

5
ответ дан 2 December 2019 в 21:45
поделиться

Где я могу найти, что польза подробно ведет к C# 3?

1) Ваше знание до сих пор кажется хорошо. Лямбда-выражения превращены в анонимные методы или Систему. Linq. Выражения. Выражение, в зависимости от контекста. Так как Вы не используете технологию базы данных, Вы не должны понимать выражения (все лямбды будут анонимными методами). Вы не перечисляли Дополнительные методы, но это очень важно (и легко) понять. Удостоверьтесь, что Вы видите, как применить дополнительный метод к интерфейсу - когда вся функциональность в linq прибывает из Системы. Linq. Счетный - набор методов расширения против IEnumerable (T).

2) Вам не нужно глубокое понимание лямбд.

Синтаксис стрелки (=>) был самым большим препятствием для меня. Стрелка разделяет подпись и тело лямбда-выражения.

Всегда помните: методы Linq не выполняются, пока не перечислено.

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

3) Несомненно, Вот некоторые мои ответы, которые показывают linq вызовы метода - некоторые с xml.

6
ответ дан 2 December 2019 в 21:45
поделиться

Считайте это...

http://linqinaction.net/

.. и всему, Вы - вопрос, ответят!!!

1
ответ дан 2 December 2019 в 21:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: