|
ref и out параметры
|
|||
---|---|---|---|
#18+
AntonariyНу или несколько разнородных объектов преобразовать в несколько объектов других родов. Это еще хуже, это имхо чистый exception ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2019, 20:28 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
Arm79, Обязательно файл что ли? По факту это требуется возврат два, три значения сразу. Без компоновки в класс. Почему нет? Ну а ref конвейерная обработка. Я за свободу). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2019, 20:42 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
AntonariyНапример, метод открытия файла, возвращающий успех/неуспех и текст с путем к файлу или текст ошибки (в зависимости от успеха). Звучит, как метод, который в зависимости от возвращаемого bool возвращает температуру на южном полюсе или цену на котлеты в соседнем бургеркинге. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2019, 22:03 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
AntonariyМой кодревьюер постоянно клюет мне моск, что использовать ref и out плохо, это слишком low level по его выражению. Я считаю, что не использовать какую-то возможность языка из идейных соображений (исключая goto, но это ограничение хорошо обосновано) - тупо. если у тебя постоянно используется ref/out/Tuple в коде - то точно что-то не то в консерватории, скорее всего очень непродуманная структура кода и классов, методы делающие и возвращающие несвязанные вещи. Такой код невозможно нормально читать и сопровождать. Ревьювер должен не на сами конструкции указывать, а на более фундаментальные проблемы кода, приведшие к их использованию ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 03:39 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
stenfordесли у тебя постоянно да. Ключевое слово постоянно. Так же как cons, global и... размер метода в строках. Всему есть мера). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 07:28 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
Petro123, Нет, не обязательно )) Я ж не говорю, что плохо. Поэтому предложил сам метод показать, а не "по аналогии", "что-то похожее", так как аналогии могут быть и неверны Ничего плохого в паттерне Try* нет, но справедливости ради следует отметить, что в в .net его применяют нечасто. В случае с файлом вполне можно применять, если, например, файл не ваш, а пользуетесь чьим то другим. И не знаете, снята или нет монопольная блокировка. Но и это не 100%, так как монопольно занятый файл приводит при попытке доступа к exception. Иногда есть смысл глушить исключение, а иногда нет. Без понимания контекста задачи нельзя однозначно сказать, хорошо это или плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 08:01 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
Arm79, Еще пример, рекурсия. Очень удобен сабж в рекурсии. Еще пример, пересечение геометрии Type Intersect(out pnt1, out pn2... И т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 08:34 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
Arm79Без понимания контекста задачи нельзя однозначно сказать, хорошо это или плохо.еще бы. Программирование это искусство а не ремесло (с))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 08:35 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
Arm79 Ничего плохого в паттерне Try* нет, но справедливости ради следует отметить, что в в .net его применяют нечасто. Вообще он появился когда C# был беден на конструкции. В других языках применяется следующие. в GO что то типа Код: c# 1. 2. 3. 4. 5. 6.
В f# есть размеченные объединения, которые в итоге разворачиваются во что то подобное. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 10:11 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
ЕвгенийВВообще он появился когда C# был беден на конструкции.странная фраза. Ref, out это преимущество шарп. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 10:26 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
Petro123Ref, out это преимущество шарп. in еще может быть ref и out скорее некий компромис, необходимый для взаимодействия с неупровляемым кодом. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 11:20 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
ЕвгенийВ, Насколько я помню, как раз в GO применяют такую конструкцию из-за проблем с exception - точнее, из-за другой концепции обработки exception Так что говорить о "бедности" языковых конструкций C# некорректно ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 11:44 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
ЕвгенийВ, Юз кейс я написал. Неуправляемый код у меня особенность чисто на деструктор. Да и зачем его неуправляемым делать). Поэтому передать по ссылке/указателю и выхолные бывает использую. Всё испрльзую кроме GOTO)))) Его только в батниках. Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 11:52 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
Arm79Так что говорить о "бедности" языковых конструкций C# некорректно Я к тому, что шарп в последнее время обогатился конструкциями и так называемый паттерн TryXXXX пока в топку. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 12:08 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
Petro123, Под неуправляемым кодом я имел ввиду именно неуправляемый, как ты это вызовешь без out? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 12:10 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
ЕвгенийВPetro123, Под неуправляемым кодом я имел ввиду именно неуправляемый, как ты это вызовешь без out?а я это называл когда то в дельфи win api32). OK ЕвгенийВпаттерн TryXXXX А чем давить исключения в цикле? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 12:38 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
ЕвгенийВшарп в последнее времялет 15 или лет 5 это последнее врнмя? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 12:39 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
Petro123ЕвгенийВPetro123, Под неуправляемым кодом я имел ввиду именно неуправляемый, как ты это вызовешь без out?а я это называл когда то в дельфи win api32). OK Конкретно это не win api. Petro123ЕвгенийВпаттерн TryXXXX А чем давить исключения в цикле? Зачем их давить? Вообще исключения не самая легкая штука, если часто возникают случаи например не корректности данных, то их нужно валидировать другими способами, не доводя до бросания исключений. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 14:16 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
fkthatМне все-таки как-то сложно придумать ему какую-то полезность, кроме паттерна "bool TryXXXX(out foo)" - кстати, это как раз и есть случай использования out-ов, на который code analysis не ругается. Полезность великая. Достать значение из словаря или подобной структуре одним выражением, распарсить строку, любая попытка чего-либо. Иначе, придётся городить что-то типа возврата OperationResult с Payload, что не так уж и плохо, так как функционально и работает с async/await. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 14:36 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
ЕвгенийВЗачем их давить? Вообще исключения не самая легкая штука, если часто возникают случаи например не корректности данных, то их нужно валидировать другими способами, не доводя до бросания исключений.ты как будто не читал что я пишу. Я давлю именно в юз кейсе ЦИКЛА. Именно шаблоном tryXXX Знаешь ДРУГИЕ способы - рассказывай. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 14:52 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
hVosttПолезность великая. Достать значение из словаря или подобной структуре одним выражением, распарсить строку, любая попытка чего-либо. Ну так это и есть шаблон bool TryXXX(out ...), про который я писал. hVosttИначе, придётся городить что-то типа возврата OperationResult с Payload, что не так уж и плохо, так как функционально и работает с async/await. Тем более, что для таких случаев можно общий дженерик завести. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 16:44 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
Как уже писали - неплохо было бы увидеть пример отбракованного кода. Сильно подозреваю, что там будет как почти всегда: "тупой тимлид гнобит юное дарование". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 16:47 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
fkthatКак уже писали - неплохо было бы увидеть пример отбракованного кода. Сильно подозреваю, что там будет как почти всегда: "тупой тимлид гнобит юное дарование". Отсутствует адекватное обоснование, при чём тут "гнобление"? Вся суть ревью это не только контроль качество кода, но и шаринг знаний. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 16:52 |
|
ref и out параметры
|
|||
---|---|---|---|
#18+
hVosttОтсутствует адекватное обоснование, при чём тут "гнобление"? Вся суть ревью это не только контроль качество кода, но и шаринг знаний. Ну так в исходном сообщение явно была жалоба на тяжелую жизнь. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2019, 16:55 |
|
|
start [/forum/topic.php?fid=20&msg=39815662&tid=1398931]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 150ms |
0 / 0 |