Показать сообщение отдельно
Старый 13.06.2017, 19:26   #8  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от belugin Посмотреть сообщение
В основном в X++ - так как было принято решение, что можно объявить класс с таким же именем что и переменную, то класс не является именем объекта-метакласса, как в Питоне, например, а надо специально его объявлять с такой штукой. Да и тип у нее - строка

В С# передают type а не строчку.
В X++ - tableNum, fieldNum, classStr, tableStr и т.д. то есть передаются целые числа и строки без контроля типов.
Что X++, что Java, что С# - все это делают. По сути - рефлексия. Которая не сильно уместна в коде приложения, а больше для утилит.

X++
SysDictClass::newName(classstr("class name"));

С#
Assembly.CreateInstance("class name");

Java
Class.forName("class name")

А код типа
Class1 c1 = new Class1();
c1.init(classstr(Class2));
если подумать то полная дичь, а не рефлексия. Дали конкретной обезьяне зачем-то знание паттернов.