Передача Object.Attr в функцию - PullRequest
0 голосов
/ 22 декабря 2018

Обычно ссылка на значение атрибута объекта возвращает это значение.

Object o = current Object
display o."Object Text"

Однако, если я передаю эту ссылку функции, которая ожидает строковый параметр, я получаю сообщение об ошибке.

string displaySomeString(string s) {
    display s   
}
Object o = current Object
displaySomeString(o."Object Text")

Я получаю этот результат из отладчика:

-E- DXL: неверные аргументы для функции (displaySomeString)

-I- DXL: все сделано.Сообщенные ошибки: 1. Сообщенные предупреждения: 0.

Что дает?Как надежно передать значение атрибута в функцию?

1 Ответ

0 голосов
/ 22 декабря 2018

Вот моё подозрение.Если вы передаете значение атрибута объекта непосредственно в вызов функции -

displaySomeString(o.attr)

- вместо этого попробуйте передать его с пустой строкой в ​​конце:

displaySomeString(o.attr "")

Или установитезначение атрибута выглядит как

string v = o.attr

, а затем передается v как

displaysomeString(v)

, и я думаю, что это может сработать.o.attr на самом деле не строка, а производный тип, и конкатенация пустой строки в конце приводит его к строке.

...