|
34 / 20 / 4
Регистрация: 07.03.2015
Сообщений: 334
|
||||||||||||||||
Какой вариант кода правильнее и эффективнее использовать?22.07.2017, 01:53. Показов 1132. Ответов 17
Метки нет (Все метки)
Первый или второй вариант, и вообще есть ли принципиальная разница, между ними?
0
|
||||||||||||||||
| 22.07.2017, 01:53 | |
|
Ответы с готовыми решениями:
17
Какой вариант лучше? 6 похожих строчек кода vs вызов функции с использованием лямбда-выражения Считывание файла: какой из приведенных методов эффективнее Как правильнее и удобнее использовать методы из класса |
|
8953 / 4865 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 22.07.2017, 02:06 | |
|
Оба неверные и не скомпилируются. Что в итоге тебе нужно? Зачем тебе такой вариант использования?
0
|
|
|
34 / 20 / 4
Регистрация: 07.03.2015
Сообщений: 334
|
|||||||
| 22.07.2017, 02:29 [ТС] | |||||||
|
Если так интересно то вот тело, тут просто получение файлов в каталоге. Кликните здесь для просмотра всего текста
Просто в голову моча стукнула), хочу знать в чем принципиальная разница есть ли она?
0
|
|||||||
|
8953 / 4865 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 22.07.2017, 02:40 | |
|
Первый вариант не будет работать, потому что вызов GetFolderFiles во 2 строке висит в воздухе
Второй вариант — потому что инициализацию полей можно делать только статическими методами
0
|
|
|
34 / 20 / 4
Регистрация: 07.03.2015
Сообщений: 334
|
||
| 22.07.2017, 02:49 [ТС] | ||
|
0
|
||
|
34 / 20 / 4
Регистрация: 07.03.2015
Сообщений: 334
|
|
| 03.08.2017, 11:04 [ТС] | |
|
Ну так что никто не скажет какой вариант лучше?, мне что-то кажется что первый вариант использования вызова метода производительнее будет)
0
|
|
|
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
|
|
| 03.08.2017, 11:37 | |
|
Fakels,
1 метод) мы можешь передать уже наполненный список и его дополнит новыми ( или дублями если такое будет уже) значениями 2 метод) список всегда будет новым
0
|
|
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,479
|
|
| 03.08.2017, 11:41 | |
|
Fakels, оба варианта принципиально одинаковы.
Второй вариант немного "правильнее" только в том смысле, что возвращает собственноручно созданный список, а не использует сторонний, который может содержать что-то не связанное с файлами или быть неинициализированным (null). Т.е. это только с точки зрения архитектуры. В плане производительности разницы не будет, ибо всё тоже самое, только порядок действий немного отличается.
0
|
|
|
34 / 20 / 4
Регистрация: 07.03.2015
Сообщений: 334
|
||
| 03.08.2017, 19:12 [ТС] | ||
|
В первом случае мы передаем ссылку на созданный объект, во втором создается и инициализируются два объекта и один из них потом уничтожается сборщиком.
0
|
||
|
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
|
|
| 03.08.2017, 20:30 | |
|
Вы не там ищите проблему. Оба подхода не ахти, но первый особенно. Либо меняйте название метода, либо тот, кто будет пользоваться вашим методом рехнется
Изменение объектов, которые поступают в метод через аргументы, должно быть очевидным для пользователя. Он отправляет данные и ожидает на выходе результат, а вы меняете исходные и возвращаете ему. Зачем? для создания цепочных вызовов? Метод должен вернуть файлы, а добавлять их в какую-то коллекцию или что-то другое с ними делать - это уже не его дело. По семантике метод GetFolderFiles должен вернуть файлы какой-то папки. Какой? Не ясно. Исходя из названия метода сделайте хотя бы так GetFolderFiles(string path) или меняйте название на более конкретное. Я понимаю, что вы хотите написать более оптимизированный код, но тот выигрыш, за которым вы гонитесь, ничтожен по сравнению с теми проблемами, которые он породит. Да, вы пока работаете один и проект небольшой. Но стоит взяться за что-то крупное или же начать работать в команде, то это даст о себе знать.
1
|
|
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,479
|
|
| 04.08.2017, 02:43 | |
|
Fakels, передача одного параметра идёт через регистр процессора, а это настолько быстро, что разницу в «скорости» не увидеть даже под микроскопом.
Что и с чего вдруг во втором случае сборщиком мусора уничтожается я не понял. sldp, приём с возвращением изменённого параметра довольно распространён. Другое дело, что конкретно в данном случае принимать внешнюю коллекцию особого смысла не имеет. Разве что автор планирует завести несколько схожих методов, результаты работы которых он хотел бы сложить в одну коллекцию без дополнительного копирования из промежуточных коллекций...
0
|
|
|
34 / 20 / 4
Регистрация: 07.03.2015
Сообщений: 334
|
|
| 04.08.2017, 02:57 [ТС] | |
|
0
|
|
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,479
|
|
| 04.08.2017, 03:05 | |
|
Fakels, серьёзно?
0
|
|
|
34 / 20 / 4
Регистрация: 07.03.2015
Сообщений: 334
|
|||||||
| 04.08.2017, 03:47 [ТС] | |||||||
|
вот к примеру
если два то, что files1 так и останется на куче висеть без дела?
0
|
|||||||
|
8953 / 4865 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
| 04.08.2017, 04:45 | |
|
0
|
|
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,479
|
|
| 04.08.2017, 05:59 | |
|
0
|
|
|
310 / 318 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
|
|
| 04.08.2017, 08:59 | |
|
Usaga, Да, но не для подобного типа методов. По этому я и говорю, что нужно либо переименовывать метод, либо менять подход
0
|
|
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,479
|
|
| 04.08.2017, 09:22 | |
|
sldp, ну да, с такой подачей "GetFolderFilesList" звучало бы более правильно.
0
|
|
| 04.08.2017, 09:22 | |
|
Помогаю со студенческими работами здесь
18
Какой контейнер в STL и для чего эффективнее использовать? Как правильнее и эффективнее реализовать перевод минут в часы и минуты? Какой вариант конструктора использовать правильней? Какой вариант кода лучше ? Какой синтаксис эффективнее? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|