Solucionando problemas de arrays

Esta página lista alguns problemas comuns que podem ocorrer ao trabalhar com matrizes.

Erros de compilação declarando e inicializar uma matriz

Erros de compilação podem surgir de mal-entendido das regras para declarar, criar e inicializar arrays.As causas de erros mais comuns são:

  • Fornecer um Novo (Visual Basic) cláusula depois de especificar os comprimentos de dimensão na declaração de variável da matriz. O seguinte código Mostrar linhas inválido declarações desse tipo.

    Dim INVALIDsingleDimByteArray(2) As Byte = New Byte()

    Dim INVALIDtwoDimShortArray(1, 1) As Short = New Short(,)

    Dim INVALIDjaggedByteArray(1)() As Byte = New Byte()()

  • A especificação de comprimentos de dimensão para mais do que a matriz de nível superior de uma matriz denteada.A linha de código a seguir mostra uma declaração inválido desse tipo.

    Dim INVALIDjaggedByteArray(1)(1) As Byte

  • Omitindo o New palavra-chave ao especificar os valores de elemento. A linha de código a seguir mostra uma declaração inválido desse tipo.

    Dim INVALIDoneDimShortArray() As Short = Short() {0, 1, 2, 3}

  • Fornecer um New cláusula sem chaves){}). O seguinte código Mostrar linhas inválido declarações desse tipo.

    Dim INVALIDsingleDimByteArray() As Byte = New Byte()

    Dim INVALIDsingleDimByteArray() As Byte = New Byte(2)

    Dim INVALIDtwoDimShortArray(,) As Short = New Short(,)

    Dim INVALIDtwoDimShortArray(,) As Short = New Short(1, 1)

Acessando uma matriz de limites

O processo de inicializar uma matriz atribui um limite superior e um limite inferior para cada dimensão.Cada acesso a um elemento da matriz deve especificar um índice válido ou subscrito, para cada dimensão.Se qualquer índice estiver abaixo de seu limite inferior ou acima de seu limite superior, um IndexOutOfRangeException resultados de exceção. O compilador não pode detectar o erro, portanto, ocorrerá um erro em time de execução.

Determinar limites

Se outro componente passar uma matriz para o seu código, por exemplo sistema autônomo um argumento de procedimento, você não souber o dimensionar da matriz ou comprimentos de suas dimensões.Você sempre deve determinar o limite superior de cada dimensão de uma matriz antes de tentar acessar os elementos.If the array has been created by some means other than a Visual Basic New clause, the lower bound might be something other than 0, and it is safest to determine that lower bound as well.

Especificação de dimensão

Ao determinar os limites de uma matriz multidimensional, tome cuidado como especificar a dimensão.The dimension parameters of the GetLowerBound and GetUpperBound methods are 0-based, while the Rank parameters of the Visual Basic Função LBound (Visual Basic) and Função UBound (Visual Basic) are 1-based.

Consulte também

Tarefas

Como: Declare uma variável de matriz

Como: Criar uma matriz

Como: Criar uma matriz com mais de uma dimensão

Como: Criar uma matriz de matrizes

Como: Criar uma matriz com tipos mistos de elemento

Como: Criar uma matriz com sem elementos

Como: Inicializar uma variável de matriz

Como: Inicializar uma matriz multidimensional

Como: Inicializar uma matriz irregular

Outros recursos

Matrizes no Visual Basic