AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.08.2003, 17:19   #1  
parovoz is offline
parovoz
Участник
 
18 / 12 (1) ++
Регистрация: 28.08.2003
? Что передается функциям, ссылки или значения?
Подскажите пожалста, когда в функцию передается значение, а когда ссылка на него. В плохой документации ничего про это не нашел, а хорошей не имеем. Знающие люди сказали, что ссылок в аксапте нет вообще.
Однако, если в функцию (типа void) передается класс, а в теле этой функции меняется переменная этого класса, то после завершения функции получаем измененный объект. Так же все работает при операции присваивания.

предположительно, объекты классов и таблиц - передаются (и присваиваются) по ссылке, а вот переменные основных типов - по значению.

А вот и пример:
X++:
//Тестовый класс
class TestClass
{
    int a;
}

int fa(int _a = a)
{
    a = _a;
    return a;
}

static void incA(TestClass _nts)
{
    _nts.fa(_nts.fa()+1);
}

//Метод любого другого класса, ходим тут дебагером и смотрим.
void run()
{
    TestClass NTK1, NTK2;
    ;
    NTK1 = new TestClass();
    
    NTK1.fa(5);
    TestClass::incA(NTK1);
    //Тут NTK1 уже равен 6...

    NTK2 = NTK1;
    //Тут они оба равны 6.
    TestClass::incA(NTK2);
    //А тут равны 7. Оба!!!
   ;
}
Теги
передача параметров, ссылочная переменная

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
где хранятся значения полей удаленных строк? chanchala DAX: Программирование 16 04.09.2008 10:45
Как получить значения полей (modifiedDate, modifiedTime, modifiedBy и др.) при работе с объектами AOT типа Map? LRA DAX: База знаний и проекты 15 02.04.2007 13:37
Производство: Почему теряются ссылки дочерних производств при приемке родительского? e@gle DAX: Функционал 0 01.03.2007 13:23
Значения возвращаемые sysNodeType() Lemming DAX: Программирование 2 16.12.2004 15:24
Недопустимая комбинация поля/поля ссылки Berty Wooster DAX: Программирование 2 29.05.2003 16:31

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:48.