Показать сообщение отдельно
Старый 26.07.2020, 12:36   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от DSPIC Посмотреть сообщение
1. Потому что класс может быть широко используемый, с тем или иным набором необходимых параметров.
ага. интересный довод. надо подумать.

Цитата:
Сообщение от DSPIC Посмотреть сообщение
Затолкать все параметры в new() - получится мусорка, супер универсальный конструктор, который непонятно как использовать.
"все" - не хорошее слово. как только появляется слово "все" жди логической ошибки
заталкивать в new конечно стоит только обязательные параметры.

Цитата:
Сообщение от DSPIC Посмотреть сообщение
Понятнее иметь несколько конструкторов construct*(). Яркий пример суперперегруженного конструктора у классов PrceDisc*. Каждый раз плюешься.
согласен. надо подумать. спасибо.

Цитата:
Сообщение от DSPIC Посмотреть сообщение
2. New() нельзя использовать в CoC со всеми вытекающими.
в смысле?
другими словами, это "достоинство new без параметров" или "недостак CoC"?

Цитата:
Сообщение от DSPIC Посмотреть сообщение
3. Чисто синтаксически, когда в коде пишеся ClassName:: - вываливается спсок всемвозможных конструкторов, из которых понятно, что больше подходит. как использовать класс.
это да.

но взгляни на тот же SysCLRType.
в нем constuct оставляет объект в полусобранном состоянии.
да, там есть newFromTypeName, который полностью инициализирует. Но зачем такой construct(), который готовит полуфабрикат?

если поискать строку 'protected void new(' в акс2009
то будет найдено порядка 1000 вхождений.
да, большинство - это старые классы, где есть конструкторы с нормальными параметрами.

Но есть и такие как SysCLRType.

Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 192
Размер:	298.9 Кб
ID:	12904

Цитата:
Сообщение от DSPIC Посмотреть сообщение
Если написать myObject = new Object( , то вывалится 10 непонятных параметров. вдобавок, половина которых по-дефолту, а мне еще нужно установить значение десятного, повторив дэфолты тех, что в середине....
Скорее в new должны быть обязательные параметры, а не все.
Да, я понял про PriceDisc.
Надо подумать.

Цитата:
Сообщение от DSPIC Посмотреть сообщение
По-моему, MS рекомендовал уходить от new() в сторону consеruct() еще лет 10 тому.
угу. еще во времена Дамгаарда

Цитата:
Сообщение от DSPIC Посмотреть сообщение
Что касается методов parm() - это неудачный артефакт X++, породивший миллионы бесполезного parm-кода. К счастью, от него уже избавились в D365 в пользу модификаторов доступа.
Ну... мысль понятна. Не буду спорить со словом "избавились" в прошедшем времени
__________________
полезное на axForum, github, vk, coub.