Solucionando problemas de matrizes (Visual Basic)
Esta página lista alguns problemas comuns que podem ocorrer ao trabalhar com matrizes.
Erros de compilação declarar e inicializar uma matriz
Erros de compilação podem surgir de mal-entendido das regras para declarar, criando e inicializando arrays. As causas mais comuns de erros são as seguintes:
Fornecendo um operador New (Visual Basic) cláusula depois de especificar os comprimentos de dimensão nadeclaraçãode variávelde matriz. As linhas de código a seguir mostram declarações inválido 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 a mais do que a matriz de nível superior-de uma matriz denteada. A seguinte linha de código mostra umadeclaração inválidodesse tipo.
Dim INVALIDjaggedByteArray(1)(1) As Byte
Omitindo o New palavra-chave ao especificar os valores de elemento. A seguinte linha de código mostra umadeclaração inválidodesse tipo.
Dim INVALIDoneDimShortArray() As Short = Short() {0, 1, 2, 3}
Fornecendo um New cláusula sem chaves ({}). As linhas de código a seguir mostram declarações inválido 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 fora dos limites
O processo de inicializar uma matriz atribui um superior limite e um inferior limite para cada dimensão. Cada acesso a um elemento da matriz deve especificar umíndicede válidoou subscrito, para cada dimensão. Se qualquer índice estiver abaixo de seu menor limite ou acima seu superior limite, um IndexOutOfRangeExceptionresultados deexceção . O compilador não pode detectar um erro, portanto, um erro ocorre em tempo de execução.
Determinação de limites
Se o outro componente passa uma matriz para o seu código, por exemplo como umargumentodo procedimento, você não souber o tamanho da matriz ou comprimentos de suas dimensões. Você sempre deve determinar superior limite para cada dimensão de uma matriz antes de você tentar acessar quaisquer elementos. Se a matriz tiver sido criada por algum meio diferente de um Visual Basic New cláusula, menor limite pode ser algo diferente de 0, e é mais seguro determinar que inferior limite como bem.
Especificando a dimensão
Ao determinar os limites de uma matriz multidimensional, tome cuidado como especificar a dimensão. O dimension parâmetros da GetLowerBound e GetUpperBound métodos são 0-com base, enquanto o Rank parâmetros da Visual Basic LBound e UBound funções são baseados em 1-.
Consulte também
Tarefas
Como: Inicializar variáveis de matriz no Visual Basic