powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ref и out параметры
25 сообщений из 120, страница 3 из 5
ref и out параметры
    #39815514
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyНу или несколько разнородных объектов преобразовать в несколько объектов других родов.
Это еще хуже, это имхо чистый exception
...
Рейтинг: 0 / 0
ref и out параметры
    #39815521
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
Обязательно файл что ли?
По факту это требуется возврат два, три значения сразу. Без компоновки в класс.
Почему нет?
Ну а ref конвейерная обработка.
Я за свободу).
...
Рейтинг: 0 / 0
ref и out параметры
    #39815536
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyНапример, метод открытия файла, возвращающий успех/неуспех и текст с путем к файлу или текст ошибки (в зависимости от успеха).

Звучит, как метод, который в зависимости от возвращаемого bool возвращает температуру на южном полюсе или цену на котлеты в соседнем бургеркинге.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815576
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyМой кодревьюер постоянно клюет мне моск, что использовать ref и out плохо, это слишком low level по его выражению. Я считаю, что не использовать какую-то возможность языка из идейных соображений (исключая goto, но это ограничение хорошо обосновано) - тупо.

если у тебя постоянно используется ref/out/Tuple в коде - то точно что-то не то в консерватории, скорее всего очень непродуманная структура кода и классов, методы делающие и возвращающие несвязанные вещи. Такой код невозможно нормально читать и сопровождать. Ревьювер должен не на сами конструкции указывать, а на более фундаментальные проблемы кода, приведшие к их использованию
...
Рейтинг: 0 / 0
ref и out параметры
    #39815601
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenfordесли у тебя постоянно да. Ключевое слово постоянно.
Так же как cons, global и... размер метода в строках. Всему есть мера).
...
Рейтинг: 0 / 0
ref и out параметры
    #39815608
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Нет, не обязательно )) Я ж не говорю, что плохо. Поэтому предложил сам метод показать, а не "по аналогии", "что-то похожее", так как аналогии могут быть и неверны

Ничего плохого в паттерне Try* нет, но справедливости ради следует отметить, что в в .net его применяют нечасто.

В случае с файлом вполне можно применять, если, например, файл не ваш, а пользуетесь чьим то другим. И не знаете, снята или нет монопольная блокировка. Но и это не 100%, так как монопольно занятый файл приводит при попытке доступа к exception. Иногда есть смысл глушить исключение, а иногда нет.

Без понимания контекста задачи нельзя однозначно сказать, хорошо это или плохо.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815613
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
Еще пример, рекурсия. Очень удобен сабж в рекурсии.
Еще пример, пересечение геометрии
Type Intersect(out pnt1, out pn2...
И т.д.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815614
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Без понимания контекста задачи нельзя однозначно сказать, хорошо это или плохо.еще бы. Программирование это искусство а не ремесло (с)))))
...
Рейтинг: 0 / 0
ref и out параметры
    #39815656
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79
Ничего плохого в паттерне Try* нет, но справедливости ради следует отметить, что в в .net его применяют нечасто.


Вообще он появился когда C# был беден на конструкции.
В других языках применяется следующие. в GO что то типа
Код: c#
1.
2.
3.
4.
5.
6.
     public static (bool success, bool res) Parse(string str)
        {                
            if (string.Compare("true", str, true) == 0)
                return (true, true);
            return (false, false);
        }


В f# есть размеченные объединения, которые в итоге разворачиваются во что то подобное.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
      public class BaseRes { }
        public class None : BaseRes { }
        public class Some<T> : BaseRes
        {
            public T Value { get; private set; }
            public Some(T t)
            {
                Value = t;
            }
        }

        public static BaseRes ParseBool(string str)
        {
            if (string.Compare("true", str, true) == 0)
                return new Some<bool>(true);
            return new None();
        }
...
Рейтинг: 0 / 0
ref и out параметры
    #39815662
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВВообще он появился когда C# был беден на конструкции.странная фраза.
Ref, out это преимущество шарп.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815693
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Ref, out это преимущество шарп.
in еще может быть
ref и out скорее некий компромис, необходимый для взаимодействия с неупровляемым кодом.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815705
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

Насколько я помню, как раз в GO применяют такую конструкцию из-за проблем с exception - точнее, из-за другой концепции обработки exception

Так что говорить о "бедности" языковых конструкций C# некорректно
...
Рейтинг: 0 / 0
ref и out параметры
    #39815713
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,
Юз кейс я написал. Неуправляемый код у меня особенность чисто на деструктор.
Да и зачем его неуправляемым делать).
Поэтому передать по ссылке/указателю и выхолные бывает использую.
Всё испрльзую кроме GOTO))))
Его только в батниках.
Имхо
...
Рейтинг: 0 / 0
ref и out параметры
    #39815730
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Так что говорить о "бедности" языковых конструкций C# некорректно
Я к тому, что шарп в последнее время обогатился конструкциями и так называемый паттерн TryXXXX пока в топку.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815733
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Под неуправляемым кодом я имел ввиду именно неуправляемый, как ты это вызовешь без out?
...
Рейтинг: 0 / 0
ref и out параметры
    #39815750
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВPetro123,
Под неуправляемым кодом я имел ввиду именно неуправляемый, как ты это вызовешь без out?а я это называл когда то в дельфи win api32).
OK

ЕвгенийВпаттерн TryXXXX
А чем давить исключения в цикле?
...
Рейтинг: 0 / 0
ref и out параметры
    #39815752
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВшарп в последнее времялет 15 или лет 5 это последнее врнмя?
...
Рейтинг: 0 / 0
ref и out параметры
    #39815821
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ЕвгенийВPetro123,
Под неуправляемым кодом я имел ввиду именно неуправляемый, как ты это вызовешь без out?а я это называл когда то в дельфи win api32).
OK

Конкретно это не win api.
Petro123ЕвгенийВпаттерн TryXXXX
А чем давить исключения в цикле?
Зачем их давить? Вообще исключения не самая легкая штука, если часто возникают случаи например не корректности данных, то их нужно валидировать другими способами, не доводя до бросания исключений.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815835
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatМне все-таки как-то сложно придумать ему какую-то полезность, кроме паттерна "bool TryXXXX(out foo)" - кстати, это как раз и есть случай использования out-ов, на который code analysis не ругается.

Полезность великая. Достать значение из словаря или подобной структуре одним выражением, распарсить строку, любая попытка чего-либо.

Иначе, придётся городить что-то типа возврата OperationResult с Payload, что не так уж и плохо, так как функционально и работает с async/await.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815845
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВЗачем их давить? Вообще исключения не самая легкая штука, если часто возникают случаи например не корректности данных, то их нужно валидировать другими способами, не доводя до бросания исключений.ты как будто не читал что я пишу.
Я давлю именно в юз кейсе ЦИКЛА.
Именно шаблоном tryXXX
Знаешь ДРУГИЕ способы - рассказывай.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815918
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПолезность великая. Достать значение из словаря или подобной структуре одним выражением, распарсить строку, любая попытка чего-либо.
Ну так это и есть шаблон bool TryXXX(out ...), про который я писал.

hVosttИначе, придётся городить что-то типа возврата OperationResult с Payload, что не так уж и плохо, так как функционально и работает с async/await.
Тем более, что для таких случаев можно общий дженерик завести.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815921
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как уже писали - неплохо было бы увидеть пример отбракованного кода. Сильно подозреваю, что там будет как почти всегда: "тупой тимлид гнобит юное дарование".
...
Рейтинг: 0 / 0
ref и out параметры
    #39815928
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatКак уже писали - неплохо было бы увидеть пример отбракованного кода. Сильно подозреваю, что там будет как почти всегда: "тупой тимлид гнобит юное дарование".

Отсутствует адекватное обоснование, при чём тут "гнобление"?
Вся суть ревью это не только контроль качество кода, но и шаринг знаний.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815932
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttОтсутствует адекватное обоснование, при чём тут "гнобление"?
Вся суть ревью это не только контроль качество кода, но и шаринг знаний.
Ну так в исходном сообщение явно была жалоба на тяжелую жизнь.
...
Рейтинг: 0 / 0
ref и out параметры
    #39815944
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatНу так в исходном сообщение явно была жалоба на тяжелую жизнь.

Не думаю, что это является предметом обсуждения :)
По крайне мере до тех пор, пока не станет ясно, что ТС не прав
...
Рейтинг: 0 / 0
25 сообщений из 120, страница 3 из 5
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ref и out параметры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]