ReDim demonstrativo (Visual Basic)

Realoca espaço de armazenamento para uma variável de matriz.

ReDim [ Preserve ] name(boundlist) [ , name(boundlist) [, ... ] ]

Partes

  • Preserve
    Opcional.Modificador usado para preservar os dados na matriz existente quando você altera o tamanho somente da última dimensão.

  • name
    Obrigatório.Nome da variável da matriz.SeeNomes de Elementos Declarados.

  • boundlist
    Obrigatório.Lista de limites de cada dimensão da matriz redefinida.

Comentários

Você pode usar o ReDim demonstrativo para alterar o dimensionar de uma ou mais dimensões de uma matriz que já foi declarado. Se você tiver um grande array e você não precisa mais alguns de seus elementos, ReDim pode liberar memória, reduzindo o dimensionar da matriz. Por Outros lado, se seu código determina que uma matriz precisa de mais elementos, ReDim poderá adicioná-los.

The ReDim demonstrativo é direcionada somente para matrizes. Ela é não válido em scalars (variáveis que contém somente um único valor), coleções ou estruturas.Observe que se você declarar uma variável para ser do tipo Array, o ReDim demonstrativo não tem informações suficientes de tipo para criar o novo array.

Você pode usar ReDim somente em nível de procedimento.Isso significa que o declaração de contexto para uma variável deve ser um procedimento e não pode ser um arquivo de fonte, namespace, interface, classe, estrutura, módulo ou bloco.Para obter mais informações, consulte Declaração de contextos e níveis de acesso padrão.

Regras

  • Modificadores Você pode especificar somente o Preserve modificador e você não pode omitir o ReDim palavra-chave se você fizer isso.

  • Diversas variáveis. Você pode redimensionar várias variáveis de matriz na mesma demonstrativo de demonstrativo, especificando o name e boundlist partes de cada um. Diversas variáveis são separadas por vírgulas.

  • Limites de matriz. Cada entrada em boundlist pode especificar mais baixo e limites superiores da dimensão. O limite inferior é sempre zero, se você especificar ou não.O limite superior é o valor mais alto possível para que subscrito, não o comprimento da dimensão (que é o limite superior mais um).Cada subscrição pode variar de zero através de seu valor de limite superior.

    O número de dimensões em boundlist deve coincidir com a classificar da matriz original.

  • Matrizes vazias. É possível usar -1 para declarar o limite superior de uma dimensão de matriz.Isso significa que o array está vazio, mas não Nada (Visual Basic). Para obter mais informações, consulte Como: Criar uma matriz com sem elementos. Entretanto, o código do Visual Basic não pode acessar com êxito como uma matriz.Se você tentar fazer isso, um IndexOutOfRangeException ocorrerá um erro durante a execução.

  • Tipos de dados The ReDim demonstrativo não é possível alterar o tipo de dados de uma variável de matriz ou de seus elementos.

  • Inicialização. The ReDim demonstrativo não pode fornecer novos valores de inicialização para os elementos da matriz.

  • classificar. The ReDim demonstrativo não é possível alterar a classificar (o número de dimensões) da matriz.

  • Redimensionar com preservar. Se você usar Preserve, você pode redimensionar apenas a última dimensão da matriz e para cada Outros dimensão é necessário especificar o mesmo vinculado já tem na matriz existente.

    Por exemplo, se o array tiver apenas uma dimensão, você pode redimensionar dimensão e preservar todo o Sumário da matriz, porque você está alterando pela última vez e somente a dimensão.No entanto, se o array tiver dois ou mais dimensões, você pode alterar o dimensionar da última dimensão somente se você usar Preserve.

  • Propriedades. Você pode usar ReDim em uma propriedade que contém uma matriz de valores.

Comportamento

  • **Array Replacement.**ReDim releases the existing array and creates a new array with the same rank.O novo array substitui o array lançado na variável de matriz.

  • Inicialização sem preservar. Se você não especificar Preserve, ReDim inicializa os elementos da matriz novo para o valor padrão para seu tipo de dados.

  • Inicialização com preservar. Se você especificar o Preserve modificador, Visual Basic copia os elementos da matriz existente para o novo array.

Exemplo

O exemplo a seguir aumenta o dimensionar da última dimensão de uma matriz dinâmica sem perder os dados existentes na matriz e, em seguida, diminui o dimensionar com perda parcial de dados.Por fim, diminui o dimensionar de volta para seu valor original e reinicializa os elementos de matriz.

Dim intArray(10, 10, 10) As Integer
ReDim Preserve intArray(10, 10, 20)
ReDim Preserve intArray(10, 10, 15)
ReDim intArray(10, 10, 10)

O primeiro ReDim cria uma nova matriz que substitui o Storage existente na variável intArray. ReDim copia todos os elementos da matriz existente para o novo array. Ele também adiciona mais 10 colunas no participante de cada linha em cada camada e inicializa os elementos nessas novas colunas como 0 (o valor padrão de Integero tipo de elemento da matriz).

O segundo ReDim cria outro novo array, todos os elementos que atendam a cópia. No entanto, cinco colunas são perdidas do participante de cada linha de cada camada.Isso não é um problema se você tiver terminado de usar essas colunas.Reduzindo o dimensionar de um grande array pode liberar memória que não são mais necessários.

O terceiro ReDim cria ainda outro novo array, removendo outro cinco colunas de participante de cada linha em cada camada. Desta vez ela não copia os elementos existentes.Isso reverterá o array e seu dimensionar original e retorna todos os elementos de seus valor padrão original.

Consulte também

Tarefas

Como: Criar uma matriz com sem elementos

Conceitos

Instrução ReDim para usuários do Visual Basic 6.0

Declaração de Tamanho de Matriz para usuários do Visual Basic 6.0

Referência

Declaração Const (Visual Basic)

Instrução Dim (Visual Basic)

Apagar declaração (Visual Basic)

Nada (Visual Basic)

IndexOutOfRangeException