CEOsoftware Sistemas
ERP, NF-e, SPED, Automação Comercial, Distribuidoras

Conhecendo Array em VB.Net

fevereiro 12th, 2010 por Felipe Franco

Artigo de Willimar Augusto Rocha – Analista de Sistemas

1. INTRODUÇÃO

Durante o desenvolvimento de um sistema, nos deparamos em alguns momentos com a necessidade de armazenar na memória do computador cadeias de valores para o processamento dos dados.

Um exemplo dessa necessidade seria: O calculo de tributação de notas fiscais, onde precisamos freqüentemente acessar no banco de dados os valores de tributação para calculo de ICMS de determinado estado (UF Unidade Federativa). Para executar essa operação poderíamos armazenar o valor da tributação de todos os estados na memória do computador evitando acesso excessivo ao banco de dados diminuindo o trafego da rede. Claro que para fazer este armazenamento não precisamos criar uma variável para cada UF e sim somente criar uma array.

2. O QUE É UM ARRAY

Uma array ou matriz nada mais é do que uma lista de elementos (valores) que são armazenados na memória do computador (uso
run time). Por serem armazenados na memória do computador possuem um bom desempenho no seu uso.

Segundo o Wikipedia, uma matriz é uma tabela de m x n símbolos sobre um corpo F, representada sob a forma de um quadro com m linhas e n colunas e utilizado, entre outras coisas, para a resolução de sistemas de equações lineares e transformações lineares.


CEOsoftware | Conhecendo Array em VB.Net

Para fazer o acesso de um elemento de um array usa-se uma notação bem similar ao da matemática, onde é escrito o nome da matriz seguido do índice numérico ao qual valor pertence.

Ex.: Nome da Array (Índice Numérico)

Obs.: vale lembrar que em VB.Net uma array é indexada sempre a partir de zero

3. DECLARANDO UMA ARRAY

A declaração de uma array é feita de forma similar a de uma objeto qualquer em VB.Net.

Ex.: Dim NomeVariavel AS Type() = New Type(N) {Elemento1 .. ElementoN}

Type é o tipo da array (Não se esqueça do parênteses, isso que caracteriza o tipo como sendo uma array). No modelo observe que a array foi instanciada no ato da declaração. Isso não precisa ser feito dessa maneira, mas a array deve sempre ser instanciada antes de ser usada.

N é o tamanho da array. Se informar quatro indica que haverá cinco elementos. Isso acontece por que a
array é indexada a partir de zero.

Exemplo:


CEOsoftware | Conhecendo Array em VB.Net

Obs.: Uma variável tipada é quando seu valor tem de possuir uma característica bem definida. Ou seja quando uma variável declarada como
Integer jamais poderá receber um Float. A maior vantagem de uma variável tipada é a prevenção de erros de visto que esta variável não poderá receber valores inválidos.

4. PRINCIPAIS PROPRIEDADES DE UMA ARRAY

Para acessar uma propriedade de uma array é preciso escrever o nome da array seguido do nome de sua propriedade.

Length : Obtém o número de elementos em todas as dimensões da array.

IsFixedSize : Quando True indica que o array terá um nome fixo.

IsReadOnly : Quando True indica que a array não poderá ter seu valor modificado.

IsSynchronized : Quando True indica se o acesso ao array é sincronizado.

Rank : Obtém o número de dimensões de uma array.

SyncRoot : Obetém um objeto que pode ser usado para sincronizar o acesso à array.

5. PRINCIPAIS METODOS DE UMA ARRAY

Os métodos usados são de declaração estática “shared”, isso indica que sua utilização deve ser feita a partir da declaração da classe e não da instancia do objeto. A seguir segue-se os métodos e suas utilizações.

5.1. Clear

Limpa o conteúdo de uma array atribuindo o valor nothing para todos os elementos indicados.

Possui três parâmetros: Primeiro Array (Variavel do tipo básico array que se pretende limpar); Segundo
Index (Valor do tipo inteiro que informa o indice inicial para se executar a limpeza) e Terceiro
Length (Quantidade de elementos do array que serão zerados a partir do
index)

Exemplo:


CEOsoftware | Conhecendo Array em VB.Net

Observe que o array é criado contendo cinco elementos devidamente preenchidos. Na linha de baixo (linha 7) é executado o clear iniciando do elemento de índice dois como na instrução do segundo parâmetro e terminando no índice três limpando somente dois elementos como o solicitado no terceiro parâmetro.

5.2. Clone

Cria uma cópia do array não mantendo a referência ao objeto copiado.

Exemplo:


CEOsoftware | Conhecendo Array em VB.Net

Na linha cinco é instanciada a primeira a array e na linha seguinte é somente feita a declaração da
array que receberá a cópia daquela que foi instanciada. Observe que uma vez que o comando clone foi executado todos os valores são copiados para a segunda variável declarada. Na linha dez é executado um clear na
array instanciada na linha cinco o que comprova a inexistência de uma referencia ao objeto.

Obs.: Objetos por referência são aqueles que apesar de possuírem declarações distintas, ou seja nomes de variáveis diferentes, indicam uma mesma posição de memória. Isso acontece quando se usa uma variável para receber um objeto diretamente. Exemplo VarObject = txtEditNaTela.

5.3. Copy

Executa a cópia dos elementos de uma array para outra. Neste método é feita a cópia somente dos elementos.

Exemplo:


CEOsoftware | Conhecendo Array em VB.Net

Primeira observação a ser feita neste exemplo é que a array de destino dos valores deve ser instanciada e dimensionado antes de ser usada no método. Os quatro parâmetros são: primeiro
sourceArray (array onde estão os valores que se deseja copiar); segundo
sourceIndex (índice inicial de onde serão retirados os valores); terceiro
destinationArray (array para onde os dados dos elementos serão copiados); quarto
destinationIndex (índice inicial para onde os elementos serão copiados) e quinto
Length (quantidade de elementos que serão copiados a partir do índice indicado no segundo parâmetro).

O parâmetro length não pode ser maior que a quantidade de elementos disponíveis na primeira e na segunda
array menos o índice inicial.

5.4. CopyTo

Copia todos os elementos de uma array unidimensional para outro array. Funciona de forma similar ao tópico anterior.

5.5. CreateInstance

Função que retorna uma instancia de uma array com o tipo definido no parametro. Observe que esta função é uma maneira diferente de se instanciar uma
array, outra maneira é usando new Type(Length) {} como o apresentado nos tópicos anteriores.


CEOsoftware | Conhecendo Array em VB.Net

5.6. Equals

Determina se duas instancias de objeto são iguais.

Exemplo:


CEOsoftware | Conhecendo Array em VB.Net


CEOsoftware | Conhecendo Array em VB.Net

Observe que no primeiro exemplo apesar das variáveis serem instanciadas com o mesmo valor o resultado da operação equals é false enquanto no segundo exemplo a atribuição direta das variáveis faz com que o resultado seja true. Isso acontece por que é avaliada a referência do objeto e não os valores a ele atribuídos.

5.7. GetLength

Retorna o número de elementos de uma dimensão especificada no segundo parâmetro.

Exemplo:


CEOsoftware | Conhecendo Array em VB.Net

5.8. GetLowerBound e GetUpperBound

Obtém o menor e maior índice de uma dimensão especificada. GetUpperBound equivale a função UBound.


CEOsoftware | Conhecendo Array em VB.Net

5.9. GetValue e SetValue

Obtém um valor de um índice definido do array. É o mesmo que executar a seguinte linha de comando:

Exemplo:


CEOsoftware | Conhecendo Array em VB.Net

Observe que foram usadas duas maneiras para se atribuir e verificar o valor de um array.

As maneiras mais comuns são as encontradas nas linhas onze e dezessete.

5.10. IndexOf

Retorna o índice da primeira ocorrência de um valor em uma array.

Exemplo:


CEOsoftware | Conhecendo Array em VB.Net

5.11. Reverse e Sort

São rotinas de ordenação de elementos da array.

Exemplo:


CEOsoftware | Conhecendo Array em VB.Net

No momento da declaração da variável os elementos são atribuídos de forma desordenada, na seqüência é feita uma ordenação de ordem crescente e depois em ordem decrescente.

Posted in CEOsoftware, Dicas e Tendências

Deixe um comentario