Показать сообщение отдельно
Старый 26.07.2024, 15:57   #5  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Присваивать массивы нельзя, а передавать через параметры можно. Вот так:
X++:
static void Job1210(Args _args)
{
    Integer     listNum[];
    
    void method(Integer _listNum[])
    {
        ;

        info(strFmt("%1", _listNum[1]));
        info(strFmt("%1", _listNum[2]));
    }
    ;
    
    listNum[1] = 100;
    listNum[2] = 200;

    method(listNum);
}
Проверил в AX 2012 и AX 3 - работает одинаково. В CIL не проверял, но вроде пишут, что в CIL может сработать присваивание массивов, но вроде как будет работать как через указатели - изменение одного элемента в копии массива приведет к изменению того же эемента в исходном массиве. X++: X++ Arrays Behave Differently in .NET CIL, in Dynamics AX 2012

Т.е. newList = _listNum без CIL не вызовет ошибки компиляции, но не работает - массив newList останется пустой (я проверил). А внутри CIL скопируется ссылка на исходный массив (я не проверял).
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/

Последний раз редактировалось Ace of Database; 26.07.2024 в 16:13.
За это сообщение автора поблагодарили: Logger (7), dech (5).