Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
 Re: ref и out параметры  [new]
ЕвгенийВ
Member

Откуда: Москва
Сообщений: 4673
Ролг Хупин
goto бояться - в лес не ходить! это лучшее, что есть в разных языках

Если использовать кодогенерацию, то goto самый то.
16 май 19, 09:53    [21885930]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
ЕвгенийВ
кодогенерацию
тоже пребор. Но ставлю имхо)
16 май 19, 10:02    [21885939]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72736
Shocker.Pro
Antonariy
кортежи пока не используем, потому что сидим на 4м фреймворке.
4-й фреймворк никак не мешает использованию кортежей. Вот буквально недавно Випросу пример приводил
Использовать класс Tuple можно, но синтаксические кортежи не работают, они требуют поддержки какими-то другими классами, которых в 4м нет. Можно использовать какое-то дополнение, но не хочется, в обозримом будущем переедем на фреймворк поновее.
16 май 19, 10:59    [21886009]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72736
автор
сидим на 4м фреймворке.
к тому же на client profile
16 май 19, 11:01    [21886016]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
ЕвгенийВ
Member

Откуда: Москва
Сообщений: 4673
Antonariy,
нужно только выбрать соответствующую версию языка

К сообщению приложен файл. Размер - 10Kb
16 май 19, 11:58    [21886075]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20320
Antonariy
Использовать класс Tuple можно, но синтаксические кортежи не работают, они требуют поддержки какими-то другими классами, которых в 4м нет.
Этот класс ValueTuple - его нет и в других фреймворках, не только в 4-м. При этом он прекрасно совместим и ставится из нугета, причем практически автоматом, как только начинаешь использовать именованные кортежи
Antonariy
но синтаксические кортежи не работают
я ж даже скриншот привел, что работают
Antonariy
к тому же на client profile
да пофиг. Этот, как я сказал, отдельный класс и синтаксис языка. К фреймворку не имеет отношения.
16 май 19, 16:59    [21886470]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
fkthat
Member

Откуда:
Сообщений: 1139
Shocker.Pro,

В общем-то, туплы (которые с красивым синтаксисом) появились в C# 7, а его в старом фреймворке может и не быть (он, емнип, шел с минимум 4.6). Другое дело, что можно спокойно поставить новый фреймворк с ним, а собирать им для старого фреймворка (поставить в свойствах проекта Target Framework). Есть правда с этим засада при работе в команде - у кого-нибудь некрофила может проект с вашим кодом не собраться.
16 май 19, 18:09    [21886551]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
fkthat
Member

Откуда:
Сообщений: 1139
Shocker.Pro,

Я имею в виду, не класс Tuple<T1, T2> и подобные, а поддержку конструкций типа

(string firstName, string lastName) person = ("Joe", "Doe");


(она на самом деле именно в Tuple<string, string> компилятором и преобразуется)
16 май 19, 18:15    [21886552]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20320
fkthat
В общем-то, туплы (которые с красивым синтаксисом) появились в C# 7, а его в старом фреймворке может и не быть....Я имею в виду, не класс Tuple<T1, T2> и подобные, а поддержку конструкций типа
мля, я же внятно сказал ValueTuple. И ссылку дал: 21857815
16 май 19, 18:39    [21886564]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20320
fkthat
(она на самом деле именно в Tuple<string, string> компилятором и преобразуется)
нет
16 май 19, 18:39    [21886565]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
fkthat
Member

Откуда:
Сообщений: 1139
Shocker.Pro
fkthat
В общем-то, туплы (которые с красивым синтаксисом) появились в C# 7, а его в старом фреймворке может и не быть....Я имею в виду, не класс Tuple<T1, T2> и подобные, а поддержку конструкций типа
мля, я же внятно сказал ValueTuple. И ссылку дал: 21857815


Все верно. У тебя таргетфреймворк 4, а компилятор стоит уже 7-й (это в настройках билда "Advanced" можно посмотреть или изменить). А у ТС может просто компилятора достаточно нового не быть. Мы сейчас точно так же стали, например, кое-что уже под коре 2 собирать на C# 8.
16 май 19, 18:43    [21886566]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20320
Shocker.Pro
fkthat
(она на самом деле именно в Tuple<string, string> компилятором и преобразуется)
нет
Очень важное отличие, на котором ты проколешься, раз думаешь, что именованные кортежи преобразуются в Tuple - это то, что именованный кортеж является структурой, а не классом, как Tuple.
16 май 19, 18:44    [21886569]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20320
fkthat
Все верно. У тебя таргетфреймворк 4, а компилятор стоит уже 7-й (это в настройках билда "Advanced" можно посмотреть или изменить). А у ТС может просто компилятора достаточно нового не быть. Мы сейчас точно так же стали, например, кое-что уже под коре 2 собирать на C# 8.
Я читаю то, что было написано и не более:
Antonariy
кортежи пока не используем, потому что сидим на 4м фреймворке.
16 май 19, 18:46    [21886571]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
fkthat
Member

Откуда:
Сообщений: 1139
Shocker.Pro,

Ну я ими почти не пользуюсь, т.ч. таких ньюансов не особо знаю. Но один черт, оно преобразуется в чисто библиотечный тип данных, который, как ты уже упоминал ставится под любой четвертый фреймворк пакетом. Просто с более старым компилятором придется этот тип данных использовать напрямую, а с новым можно более удобным синтаксисом писать. Вот попробуй в настройках проекта переключится на C# 6 и оно уже не соберется.
16 май 19, 18:50    [21886574]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20320
fkthat
Просто с более старым компилятором придется этот тип данных использовать напрямую, а с новым можно более удобным синтаксисом писать. Вот попробуй в настройках проекта переключится на C# 6 и оно уже не соберется.
это ежу понятно, но речь-то не об этом ))) возможно люди ограничивают себя просто по незнанию
16 май 19, 19:58    [21886615]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
hVostt
Member

Откуда:
Сообщений: 15381
Antonariy
Мой кодревьюер постоянно клюет мне моск, что использовать ref и out плохо, это слишком low level по его выражению. Я считаю, что не использовать какую-то возможность языка из идейных соображений (исключая goto, но это ограничение хорошо обосновано) - тупо.

Кто что думает по этому поводу?


Человеку больше заняться нечем видимо. Обоснование по типу "потому что зелёное", не нужно ему в кодревью.
19 май 19, 14:16    [21888180]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Arm79
Member

Откуда: МО, Раменское
Сообщений: 3663
Antonariy
Мой кодревьюер постоянно клюет мне моск, что использовать ref и out плохо, это слишком low level по его выражению. Я считаю, что не использовать какую-то возможность языка из идейных соображений (исключая goto, но это ограничение хорошо обосновано) - тупо.

Кто что думает по этому поводу?

А можно увидеть ваш метод, в котором используются out и ref параметры?
19 май 19, 18:27    [21888314]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Arm79,
Выше уже просил. Конкретику не показывают.
19 май 19, 19:42    [21888340]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
hVostt
Member

Откуда:
Сообщений: 15381
Antonariy,

Вот если бы код твой ревьювер сказал бы, например, что out/ref нельзя использовать в асинхронных методах и при необходимости переделывать их на асинк будет сложно рефакторить, вот это был бы разумный довод.

Опять же, ref действительно использовался в основном для поддержки работы с низкоуровневым АПИ, COM. Но это не касается out, который действительно очень полезен особенно вкупе с фичами C# 7, когда переменную можно объявить прям в out выражении.
19 май 19, 21:30    [21888394]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
fkthat
Member

Откуда:
Сообщений: 1139
hVostt
Вот если бы код твой ревьювер сказал бы, например, что out/ref нельзя использовать в асинхронных методах


А их и так нельзя использовать. Компилятор не даст.
19 май 19, 23:49    [21888439]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26479
fkthat
hVostt
Вот если бы код твой ревьювер сказал бы, например, что out/ref нельзя использовать в асинхронных методах


А их и так нельзя использовать. Компилятор не даст.
Ты вырвал фразу из контекста.
hVostt на это и намекает во второй части предложения.
20 май 19, 10:03    [21888584]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
fkthat
Member

Откуда:
Сообщений: 1139
hVostt
Но это не касается out, который действительно очень полезен особенно вкупе с фичами C# 7, когда переменную можно объявить прям в out выражении.


Мне все-таки как-то сложно придумать ему какую-то полезность, кроме паттерна "bool TryXXXX(out foo)" - кстати, это как раз и есть случай использования out-ов, на который code analysis не ругается.
20 май 19, 10:45    [21888622]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72736
Arm79
Antonariy
Мой кодревьюер постоянно клюет мне моск, что использовать ref и out плохо, это слишком low level по его выражению. Я считаю, что не использовать какую-то возможность языка из идейных соображений (исключая goto, но это ограничение хорошо обосновано) - тупо.

Кто что думает по этому поводу?

А можно увидеть ваш метод, в котором используются out и ref параметры?
А какая разница? По смыслу - TryParse. Например, метод открытия файла, возвращающий успех/неуспех и текст с путем к файлу или текст ошибки (в зависимости от успеха).
20 май 19, 20:09    [21889190]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72736
Ну или несколько разнородных объектов преобразовать в несколько объектов других родов.
20 май 19, 20:13    [21889194]     Ответить | Цитировать Сообщить модератору
 Re: ref и out параметры  [new]
Arm79
Member

Откуда: МО, Раменское
Сообщений: 3663
Antonariy
метод открытия файла, возвращающий успех/неуспех и текст с путем к файлу или текст ошибки (в зависимости от успеха).

А почему не предусмотрели такой механизм в платформе? )))) именно для файлов возможно и не нужно так
20 май 19, 20:28    [21889204]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
Все форумы / WinForms, .Net Framework Ответить