AX Dev Warehouse

Um blog dedicado ao desenvolvimento de soluções em Microsoft Dynamics AX
posts - 41, comments - 18, trackbacks - 1

Coleções de objetos no X++: Arrays

Quando estou estudando uma linguagem de desenvolvimento nova, acho que depois da sintaxe da linguagem em si, a segunda coisa mais imporante é aprender o que a linguagem me oferece em termos de coleções. Afinal no dia-a-dia nos usamos estes objetos intensamente e escolher a coleção correta para o problema pode melhorar a performance da aplicação assim como a legibilidade do código.

O livro Inside Microsoft Dynamics AX 4.0 tem um item dedicado às coleções oferecidas pelo X++. Vou fazer aqui um breve resumo, pois considero o assunto fundamental para os desenvolvedores que estão iniciando na linguagem. Vou aproveitar e fazer um paralelo com as coleções do .Net Framework, para quem tem experiência com esta plataforma.

A coleção Array, como qualquer array, guarda instâncias de qualquer tipo de objeto. O índice do Array no X++ começa do 1, e não do zero, como no C#. Todo Array em X++ é dinâmico, ou seja seu tamanho cresce conforme objetos são incluídos. Na Listagem 1 um array de strings é criado e carregado com os nomes dos estados da região sudeste. O array é a coleção mais básica, porém também uma das usadas em diversas linguagens.

    Array array = new Array(types::string);
    int i;
    ; 

    array.value(1, "Rio de Janeiro");
    array.value(3, "Minas Gerais");
    array.value(2, "São Paulo");
    array.value(4, "Espírito Santo");
    for (i = 1; i <= array.lastIndex(); i++)
    {
        print(array.value(i));
    }

    //Resultado:
    //Rio de Janeiro
    //São Paulo
    //Minas Gerais
    //Espírito Santo


    print array.lastIndex(); // 4

    pause;

 

Em X++ o array tem tamanho dinâmico, você não precisa definir nem controlar o tamanho da coleção. O índice do Array inicia em 1 e não em 0, como outras linguagens.

Esta coleção funciona bem tanto para casos de acesso sequenciais quanto para casos no qual o índice desejado é conhecido.

Existem outras coleções que funcionam melhor para outros casos. Veremos estas mais tarde.

Print | posted on Monday, March 19, 2007 9:58 PM | Filed Under [ X++ ]

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 1 and 4 and type the answer here:

Powered by: