Всем привет.
Коллеги, ковыряюсь с наследованием табличек.
Возможно ли приводить тип таблички к типу не определенному на этапе компиляции?
Штатный способ
требует чтобы tableName был именем таблички, т.е. жестко определяется на этапе компиляции. Нельзя поставить переменную.
Сделал вот такой способ
X++:
// приводит табличный буфер к заданному типу
// работает аналогично оператору as
// отличие в том, что 2-м операндом принимает переменную
// т.е. на этапе компиляции тип может быть неизвестен
public static Common as(
Common _common,
TableName _tableName)
{
anyType anyBuffer;
Common ret;
;
if (tableName2id(_tableName))
{
// anyBuffer = _common as _tableName
anyBuffer = new SysDictTable(tableName2id(_tableName)).makeRecord();
anyBuffer = _common;
ret = anyBuffer;
}
return ret;
}
Работает.
Но он немного хакерский.
Есть что-то более документированное ?