|
13.06.2017, 19:57 | #1 |
Участник
|
Цитата:
Сообщение от belugin
В основном в X++ - так как было принято решение, что можно объявить класс с таким же именем что и переменную, то класс не является именем объекта-метакласса, как в Питоне, например, а надо специально его объявлять с такой штукой. Да и тип у нее - строка
В С# передают type а не строчку. В X++ - tableNum, fieldNum, classStr, tableStr и т.д. то есть передаются целые числа и строки без контроля типов. Почему про них забыли и никто этим не пользуется?
__________________
// no comments |
|
13.06.2017, 22:43 | #2 |
Banned
|
Цитата:
Вот для них и выставляют в качестве интерфейса SysDictClass::newName(class name), чтобы потом стыдливо className2Id() для new(Id). И да, по-моему эти "атрибуты в расширении наследования классов" - по сути своей ни что иное как использование рефлексии. Патентованный хак заколоченной фабрики. |
|
|
За это сообщение автора поблагодарили: ta_and (3). |
14.06.2017, 07:29 | #3 |
Участник
|
Цитата:
В Ax2012 числовые идентификаторы стали специфичными для установки. Это сняло много проблем (например, не надо держать "сервер идентификаторов" чтобы их централизованно распределять). Но при этом оказалось, что их не стоит хранить на внешних носителях. Например при переносе бекапа с рабочей базы на тестовую результат может быть неработоспособен так как идентификаторы классов, каких-нибудь там форматов платежей в настройках не совпадает. Соответственно везде перевели хранение на имена. Дополниельно к этому перевели на строчки еще кучу мест - тут уж я не знаю зачем. Например типы в диалоге, вроде, никуда не сохраняются, а addField(typeNum(xxx) надо переводить на extendedTypeStr |
|
|
За это сообщение автора поблагодарили: ax_mct (5). |
14.06.2017, 11:20 | #4 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: ax_mct (5). |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|