|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
Добрый день Читаю книгу Скита C# для профессионалов. Завяз на главе с примерами применения итераторов в реальных примерах. А именно на вот таком вот примере: Код: 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.
Непонимание в следующем: в книге пишется, что решение задачи построчного чтения текстового файла будет лучше при использовании итератора (1) , а реализация чтения через using(2) является не гуд..... Вопрос - почему? в книге это освещено достаточно скудно...... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 13:24 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
k120, Разве не очевидно? Решение через using требует наличие дополнительного кода обвязки, а именно: открытие файла на чтение. Если требуется много и часто читать файлы по-строчно в разных местах программы, будет много дублирования кода. Но на мой взгляд, решение на итераторе, как привёл Скит -- отвратительное решение. В учебных целях такое решение конечно можно привести, и резюмировать следующими словами: всё это круто, но так делать нельзя!! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:20 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
Собсно, метод ReadLines существует в .NET, если я правильно понял, с 4-й версии https://msdn.microsoft.com/ru-ru/library/dd383503(v=vs.110).aspx Почему так делать нельзя? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:28 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
Shocker.ProПочему так делать нельзя? Слишком много ответственности возлагается на один простой метод. Для простых случаев подойдёт, но вообще лучше писать что-то отдельно, под задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:31 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
Ну разве что, в штатном вызывается Dispose по окончании файла, чего нет в вышеприведенном примере ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:31 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
Shocker.ProНу разве что, в штатном вызывается Dispose по окончании файла, чего нет в вышеприведенном примере Можно бросить чтение на пол пути, и ресурс не будет освобождён. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:32 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
Shocker.ProНу разве что, в штатном вызывается Dispose по окончании файла, чего нет в вышеприведенном примере Как нет, есть using. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:33 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:36 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
hVostt, Правильно ли я понимаю, этот пример - показывает как вынести логику работы с файлом в отдельный метод, но делает это через итератор? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 15:28 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
k120hVostt, Правильно ли я понимаю, этот пример - показывает как вынести логику работы с файлом в отдельный метод, но делает это через итератор? Это пример, как, грубо говоря, текстовый файл превратить в ленивую коллекцию строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 17:45 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
hVostt, Спасибо огромное. Специфичное изложение в данной книге порой ставит в тупик :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2016, 10:11 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
k120hVostt, Спасибо огромное. Специфичное изложение в данной книге порой ставит в тупик :) Скит он такой ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2016, 10:19 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
k120hVostt, Спасибо огромное. Специфичное изложение в данной книге порой ставит в тупик :) Львиная доля из них написана плохо, дабы произвести впечатление своим объемом и огрести поболее бабла. Никому нельзя верить! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2016, 10:36 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
hVosttShocker.ProНу разве что, в штатном вызывается Dispose по окончании файла, чего нет в вышеприведенном примере Можно бросить чтение на пол пути, и ресурс не будет освобождён. Глупости и незнание материала. Читайте кому полусвежий хабахар нравится ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2016, 11:26 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
mikronГлупости и незнание материала. Читайте кому полусвежий хабахар нравится При чём тут foreach? Получи енумератор и не вызови у него Dispose(), получишь утечку ресурсов. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2016, 11:33 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
hVosttПри чём тут foreach? Получи енумератор и не вызови у него Dispose(), получишь утечку ресурсов. Это верно, но разве это аргумент в споре за/против итератора? Возможно я не понял ваш поинт, извените. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2016, 14:44 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
mikronhVosttПри чём тут foreach? Получи енумератор и не вызови у него Dispose(), получишь утечку ресурсов. Это верно, но разве это аргумент в споре за/против итератора? Возможно я не понял ваш поинт, извените. Ну возможно итератор в данном случае не так уж и плох, я наверное погорячился. Только надо понимать, что чтение строк может быть сложнее, например, понадобится возвращаться и перечитывать строки, или понадобится ввести разные стратегии чтерия, и в последствии от итератора будет тяжело отделаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2016, 17:41 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
hVostt При чём тут foreach? Получи енумератор и не вызови у него Dispose(), получишь утечку ресурсов. hVosttЭто пример, как, грубо говоря, текстовый файл превратить в ленивую коллекцию строк. Ленивость поможет избежать утечки ресурсов, если не коллекции, то программиста, ибо он не знает что есть Current и MoveNext, а если все же сподобиться, то ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 11:02 |
|
Прошу помощи по примерам применению итераторов описанных в книге Скита
|
|||
---|---|---|---|
#18+
ЕвгенийВЛенивость поможет избежать утечки ресурсов, если не коллекции, то программиста, ибо он не знает что есть Current и MoveNext, а если все же сподобиться, то Есть ещё одна проблема в ленивом итераторе Скита: до первой попытки чтения мы не узнаем об ошибке открытия файла, например. Т.е. мы получим не ту ленивость, что нам требуется, да и не там. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 11:15 |
|
|
start [/forum/topic.php?fid=20&msg=39325060&tid=1400293]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 401ms |
0 / 0 |