|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
Как сделать, чтобы IntelliSense показывал мои заданные имена для параметров, а не arg1, arg2, arg3.... не красиво ведь ! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 21:07 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
Просто очень глаза режет. Сильно снижает ценность от Func<> ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 21:11 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
Пример функции Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 21:14 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
тоже не помогает ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 21:31 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ProBiotekПросто очень глаза режет. Сильно снижает ценность от Func<> Галаза режит говриш... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 22:28 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
Не критичная проблема, но можно было бы и запилить её. Видимо разрабы забили. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 22:33 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
МСУНе критичная проблема, но можно было бы и запилить её. Видимо разрабы забили. Ну не скажите :( В методе из 5-ти параметров (особенно если они одно-типные) уже неприятно. Приходится быть внимательней или не пользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 23:55 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
МСУНе критичная проблема, но можно было бы и запилить её. Видимо разрабы забили. ничего они не забыли, делегату пох чего ему там присвоили к тому же, сдаётся мне, что это баян ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 00:03 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
Изопропил, ++ обыкновенный делегат который инициализируется по месту указателем на ф. или на ранее созданную. можно удирать по нему F12 и посмотреть как он объявлен в методанных. если уже невтерпеж, можно сделать своё объявление - "перекрыть" delegate TResult Func<in T, out TResult>(T myArg); ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 00:48 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ProBiotekКак сделать, чтобы IntelliSense показывал мои заданные имена для параметров, а не arg1, arg2, arg3.... не красиво ведь ! Переходи на F#, он легко разруливает такие штуки! Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 10:51 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
Я выходец из Дельфи. Мои эксперименты в массовом использовании Func<> Action<> заключались в попытке перенести из мира Дельфи "встроенные функции". Очень жаль, что аналогов в C# нету. Func и Action могли бы стать отличнейшей заменой ! Правда есть огромные сомнения в производительности, что и вынудило отказаться от идеи. Кто знает ? Func и Action создают новый класс для каждой лямбды или встраивают метод в класс в котором были объявлены ? Т.е. в таком коде: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Компилятор на выходе создаст 3 отдельных класса + MyClass? Благодаря вложенным функциям, в Дельфи было легко и приятно писать "Как Мартин Фаулер завещал" (здоровья ему :) ) - по максимуму вынося весь код в подфункции. Да, можно создать отдельный класс и создавать в нем приватные функции. Но есть масса примеров, когда вынесение кода в функцию класса не практично. Примеры - проверка входных параметров, различные валидации внутри функции, маппирование объектов. Все это можно вынести в отдельные функции, но что если функции нужно СТРОГО И ТОЛЬКО в данной функции ? Например проверка входных параметров в функцию контроллера Asp.net MVC. Приходит 15ть параметров модели, которые нужно проверить. Выносить в отдельную функцию бесмысленно. Чтобы не замусоривать класс, т.к. эти входные параметры строго индивидуальны для данного метода. В Дельфи подобное легко оформлялось в подфункции. В C# придется делать приватный метод и визуально захламлять интерфейс контроллера. В итоге вместо 5 методов контроллера + 2,3 приватных общих, получаем 20 методов, из которых 15 используются строго в одном методе. Есть разница ? :) Не получится писать красивый код, состоящий из сплошных вызовов подфункций. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:11 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:20 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ProBiotekЯ выходец из Дельфи. Мои эксперименты в массовом использовании Func<> Action<> заключались в попытке перенести из мира Дельфи "встроенные функции". Очень жаль, что аналогов в C# нету. Func и Action могли бы стать отличнейшей заменой ! Правда есть огромные сомнения в производительности, что и вынудило отказаться от идеи. Кто знает ? Func и Action создают новый класс для каждой лямбды или встраивают метод в класс в котором были объявлены ? Т.е. в таком коде: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Компилятор на выходе создаст 3 отдельных класса + MyClass? Благодаря вложенным функциям, в Дельфи было легко и приятно писать "Как Мартин Фаулер завещал" (здоровья ему :) ) - по максимуму вынося весь код в подфункции. Да, можно создать отдельный класс и создавать в нем приватные функции. Но есть масса примеров, когда вынесение кода в функцию класса не практично. Примеры - проверка входных параметров, различные валидации внутри функции, маппирование объектов. Все это можно вынести в отдельные функции, но что если функции нужно СТРОГО И ТОЛЬКО в данной функции ? Например проверка входных параметров в функцию контроллера Asp.net MVC. Приходит 15ть параметров модели, которые нужно проверить. Выносить в отдельную функцию бесмысленно. Чтобы не замусоривать класс, т.к. эти входные параметры строго индивидуальны для данного метода. В Дельфи подобное легко оформлялось в подфункции. В C# придется делать приватный метод и визуально захламлять интерфейс контроллера. В итоге вместо 5 методов контроллера + 2,3 приватных общих, получаем 20 методов, из которых 15 используются строго в одном методе. Есть разница ? :) Не получится писать красивый код, состоящий из сплошных вызовов подфункций. Рекомендую побольше почитать на эту тему (как с этим дела в Delphi, не знаю). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:27 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ЕвгенийВ, Великолепно !!! Значит, все таки Func и Action можно использовать как замену вложенным функциям !! Компилятор обернул все так как и нужно - в статические методы. В принципе, я на это надеялся :) Верил, что разработчики не глупы. Остается проблема, описанная в топике... :) Что IntelliSense не выводит нормальные имена. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:30 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
Ilya81, Паттерны я знаю :) Вопрос стоял о читаемости кода, а это уже Мартин Фаулер с идеей минимальных и читабельных методов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:32 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ProBiotek, вас не смущает что это делегаты, и иницализируются они простыми указателями ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:36 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
Где-то в степи, А что должно смущать ? Типобезопасность ? То, что это делегаты, инициализирующиеся указателями на функции - так это же и отлично. Производительность максимальна. В чем проблема ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:38 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ProBiotekЕвгенийВ, Великолепно !!! Значит, все таки Func и Action можно использовать как замену вложенным функциям !! Компилятор обернул все так как и нужно - в статические методы. В принципе, я на это надеялся :) Верил, что разработчики не глупы. Остается проблема, описанная в топике... :) Что IntelliSense не выводит нормальные имена. Так сделай статический класс и помести туда нужные тебе методы, смотри например класс Math. Хотя многие делфисты не в курсе, что у них статические методы и class procedure/function, что для меня было шоком. C# полностью (почти) ОО язык, забудь про процедурное программирование и методы вне класса! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:38 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ProBiotekIlya81, Паттерны я знаю :) Вопрос стоял о читаемости кода, а это уже Мартин Фаулер с идеей минимальных и читабельных методов. Ну так используйте Helper (или Decorator, или ещё что, что больше подходит к задаче). Ничего нового здесь придумывать не надо, всё уже придумано. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:41 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ЕвгенийВ, Так я об этом и говорю, что вынесение метода в приватный метод - ЗАМУСОРИВАЕТ код. Мы выносим метод в общий интерфейс класса, который используется лишь одним единственным методом. Или вы предлагаете на каждый метод создавать отдельный класс ? Будет головняк с общими методами. Придется делать иерархию классов и выносить общие методы в базовых класс... Кхм, отличная альтернатива вложенным функциям ;) Не знаю, что за дельфисты не знают, что class function/procedure это синоним статической функции, разве что студенты может быть ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:42 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ProBiotek, проблема в вашей "читаемости" и причем тут читаемость? тип делегата и название аргумента задается при объявлении делегата, но не как при его инициализации, мало того может быть ветвленная инициализация разными функциями с разным названием аргуметов, и что вы там замечтаете увидеть в intelisense ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:44 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ProBiotekЕвгенийВ, Так я об этом и говорю, что вынесение метода в приватный метод - ЗАМУСОРИВАЕТ код. Мы выносим метод в общий интерфейс класса, который используется лишь одним единственным методом. Или вы предлагаете на каждый метод создавать отдельный класс ? Будет головняк с общими методами. Придется делать иерархию классов и выносить общие методы в базовых класс... Кхм, отличная альтернатива вложенным функциям ;) Не знаю, что за дельфисты не знают, что class function/procedure это синоним статической функции, разве что студенты может быть ? :) Зачем отдельный класс на каждый метод - объединяйте схожие по назначению методы в статические классы, а классы в namespace'ы - по мне вполне логичная иерархия вспомогательных функций. При этом желательно учитывать используемые в них типы данных (принципы, одно из названий которых - S.O.L.I.D). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:48 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ProBiotekНе знаю, что за дельфисты не знают, что class function/procedure это синоним статической функции, разве что студенты может быть ? :) Есть отличия? Если есть то в чем? Код: pascal 1.
Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 14:53 |
|
IntelliSense для Func<> Action<> ?
|
|||
---|---|---|---|
#18+
ЕвгенийВ Код: pascal 1.
Код: pascal 1.
Нинаю :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 15:04 |
|
|
start [/forum/topic.php?fid=20&msg=38843430&tid=1402074]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 337ms |
total: | 472ms |
0 / 0 |