|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
А почему вы, ребята, называете "LINQ query expressions" сахаром? Выходит будто fluent expressions не являются сахаром над query expressions, ведь fluent как раз и есть сахар над query же, бо query появился раньше fluent и fluent это суть тот же query написанный в функциональном стиле! ЗЫ. Я смотрю дело Севы и МСУ живёт ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 13:33 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
enigmaticА почему вы, ребята, называете "LINQ query expressions" сахаром?Потому fluent находится почти полностью в рамках классического синтаксиса С#/VB, а query expressions имеют sql-синтаксис, вкоряченный в С#/VB. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 13:38 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyПотому fluent находится почти полностью в рамках классического синтаксиса С#/VB, а query expressions имеют sql-синтаксис, вкоряченный в С#/VB.Ну мне казалось, что query синтаксис появился раньше fluent, поэтому логично предположить, что fluent является надстройкой над query, и, согласно определению "синтаксический сахар", данному педивикией, где сахаром называется то, что является дополнением/надстройкой над чем-нибудь, сахаром является как раз fluent. ЗЫ. Ты в курсе, что у тебя аватарка с косичками? Так и должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 13:50 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Antonariyfluent находится почти полностью в рамках классического синтаксисаиз любопытства - в чем заключается то малое "не почти"? enigmaticЗЫ. Ты в курсе, что у тебя аватарка с косичками? Так и должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 13:55 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProИМХО - ушанка. Балалайка, водка и медведь немножко за кадром А, ну ладно тогда, а то я давно не заходил и начал опасаться за завсегдатаев ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:15 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.Proиз любопытства - в чем заключается то малое "не почти"?Насчет сидиеза не знаю, а в вб вот это, например: Код: vbnet 1.
Или может это лишь я такими конструкциями не пользовался за рамками LINQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:31 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
enigmaticShocker.ProИМХО - ушанка. Балалайка, водка и медведь немножко за кадром А, ну ладно тогда, а то я давно не заходил и начал опасаться за завсегдатаев Блин, а ведь была мысль насчет медведя за плечом Но он туда не влезет. Добавлю хоть погоны, как время найду. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:33 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
enigmaticНу мне казалось, что query синтаксис появился раньше fluent, поэтому логично предположить, что fluent является надстройкой над query Когда кажется - креститься надо. 17217136 - и обращаем внимание на вызов Код: c# 1. 2.
который как бы и есть вызов того самого "флюентного" метода. Которые все живут в System.Linq.Enumerable . ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:34 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyНасчет сидиеза не знаю, а в вб вот это, например: Код: vbnet 1.
Ну это передача делегата Func<,> ведь (не знаю, как в VB называются делегаты - ссылки на методы). В принципе, это в некотором смысле другой сахар - создание на ходу анонимного делегата. В шарпе будет выглядеть так: Код: c# 1.
но это не имеет отношения непосредственно к линку. AntonariyИли может это лишь я такими конструкциями не пользовался за рамками LINQ.Ну и зря )) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:41 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProНу и зря ))А зачем?) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:45 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Всё верно, фигню написал. И fluent, и query одновременно появились в .Net 3.5, а query использует методы fluent'а, т.е. query -- сахар над fluent. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:49 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyShocker.ProНу и зря ))А зачем?)в чем вопрос: Зачем использовать делегаты в принципе? или Зачем использовать inline объявление анонимного делегата (вместо ссылки на явно объявленный метод)? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:08 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyпропущено... А зачем?)в чем вопрос: Зачем использовать делегаты в принципе? или Зачем использовать inline объявление анонимного делегата (вместо ссылки на явно объявленный метод)?В смысле пример приведи из своей практики. Какая была задача и как ее решил. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:11 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
enigmaticНу мне казалось, что query синтаксис появился раньше fluent, Так и есть . ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:25 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyВ смысле пример приведи из своей практики. Какая была задача и как ее решил. Вчерашний пример - из класса A создаю экземпляр класса Б, в который нужно отдать некий ID. Проблема в том, что с одной стороны этот ID классу Б понадобится не сразу (только при рендеринге), с другой стороны, ID еще и не готов, он будет сгенерен или изменен в процессе работы класса А (но заведомо до того, как он понадобится Б, просто по определению) Тогда я беру и объявляю конструктор Б не Б(int ID), а Б(Action<int> getID) и создаю экземпляр: new Б(() => this.MyID) И тогда, когда классу Б приспичит, он сделает var id=getID() и получит актуальный ID А вообще, в самой платформе .NET миллион методов и классов, принимающих на вход Func<> или Action<> - каждый из них - ответ на твой вопрос )) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:34 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Тогда я беру и объявляю конструктор Б не Б(int ID), а Б(Action<int> getID) и создаю экземпляр: new Б(() => this.MyID) И тогда, когда классу Б приспичит, он сделает var id=getID() и получит актуальный IDПочему не Б(A obj); new Б(this); var id = obj.MyID? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:43 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyТогда я беру и объявляю конструктор Б не Б(int ID), а Б(Action<int> getID) и создаю экземпляр: new Б(() => this.MyID) И тогда, когда классу Б приспичит, он сделает var id=getID() и получит актуальный IDПочему не Б(A obj); new Б(this); var id = obj.MyID? Насколько я понял, речь идет об отложенном считывании Id ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:48 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Arm79Antonariyпропущено... Почему не Б(A obj); new Б(this); var id = obj.MyID? Насколько я понял, речь идет об отложенном считывании Idтак тут тоже отложенное. в класс б передается ссылка на а, и б дергает его, когда хочет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:53 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyТогда я беру и объявляю конструктор Б не Б(int ID), а Б(Action<int> getID) и создаю экземпляр: new Б(() => this.MyID) И тогда, когда классу Б приспичит, он сделает var id=getID() и получит актуальный IDПочему не Б(A obj); new Б(this); var id = obj.MyID?Ужасное решение, увеличивающее связность кода. Зачем вводить зависимость класса Б от класса А или от какого-го либо интерфейса? Тем более, что класс Б - библиотечный. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:55 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Поэтому вопрос "нафига тут нужны делегаты" остается. А еще лучше такой: в каких случаях делегаты предпочтительней классики? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:56 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProУжасное решение, увеличивающее связность кода.Погоня за излишней развязанностью всегда во благо и красоты для? Shocker.ProЗачем вводить зависимость класса Б от класса А или от какого-го либо интерфейса? А почему нет? Условия задачи сформулированы так, что строго исключают зависимость Б от А? Shocker.ProТем более, что класс Б - библиотечный.Не убедительно. Библиотека библиотеке рознь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:04 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Antonariyи красоты для? да ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:05 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Antonariy Зачем вводить зависимость класса Б от класса А или от какого-го либо интерфейса?А действительно. А уже зависит от Б, путь заодно реализует интерфейс из Б, а передается в конструктор как Object. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:07 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyПогоня за излишней развязанностью всегда во благо и красоты для?уменьшение связности улучшает обслуживаемость, модифицируемость, тестируемость кода. По поводу "излишней" - по моему опыту - связанность должна быть всегда несколько меньше, чем требует объективный взгляд на проблему сегодня, ибо потом это резко создает ненужные проблемы при любой попытке развития проекта. AntonariyУсловия задачи сформулированы так, что строго исключают зависимость Б от А?В данном случае - да. Ибо класс библиотечный. Даже если это было бы не так в данной задаче - все равно нужно обойтись без создания зависимости класса Б от класса А, потому что завтра класс Б захочется куда-то унести или воспользоваться им в другом месте. ТЕМ БОЛЕЕ, что написание в данном случае несвязного кода не усложняет код и не прибавляет букв. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:12 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyА действительно. А уже зависит от Б, путь заодно реализует интерфейс из Б, а передается в конструктор как Object.нахера? Уже есть универсальный "интерфейс" Action<int>, нафига тут лишнюю сущность вводить? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:13 |
|
|
start [/forum/topic.php?fid=20&msg=38879169&tid=1401906]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 150ms |
0 / 0 |