Condividi tramite


Risoluzione dei problemi relativi alle matrici

Aggiornamento: novembre 2007

In questa pagina sono elencati alcuni problemi comuni che possono verificarsi durante l'utilizzo delle matrici.

Errori di compilazione durante la dichiarazione e l'inizializzazione di una matrice

Gli errori di compilazione possono dipendere da un'incomprensione delle regole relative alla dichiarazione, alla creazione e all'inizializzazione delle matrici. Le cause di errore più comuni sono le seguenti:

  • Definizione di una clausola New (Visual Basic) dopo aver specificato le lunghezze delle dimensioni nella dichiarazione della variabile della matrice. Nel codice seguente vengono illustrate le dichiarazioni non corrette di questo tipo.

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

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

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

  • Definizione di lunghezze di dimensioni per altre matrici oltre a quella di primo livello in una matrice di matrici. Nel codice seguente viene illustrata una dichiarazione non corretta di questo tipo.

    Dim INVALIDjaggedByteArray(1)(1) As Byte

  • Omissione della parola chiave New durante la definizione dei valori di un elemento. Nel codice seguente viene illustrata una dichiarazione non corretta di questo tipo.

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

  • Definizione di una clausola New non racchiusa tra parentesi graffe ({}). Nel codice seguente vengono illustrate le dichiarazioni non corrette di questo 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)

Accesso a una matrice al di fuori dei limiti

Durante il processo di inizializzazione di una matrice viene assegnato un limite superiore e un limite inferiore a ciascuna di queste dimensioni. Per accedere a un elemento della matrice, è necessario specificare un indice, o pedice, valido per ogni dimensione. Se il valore dell'indice è al di sotto del limite inferiore o al di sopra del limite superiore, viene generata un'eccezione IndexOutOfRangeException. Poiché il compilatore non è in grado di rilevare questo errore, si verifica un errore in fase di esecuzione.

Definizione di limiti

Quando un altro componente passa una matrice al codice, ad esempio l'argomento di una routine, le dimensioni della matrice o le lunghezze delle sue dimensioni sono sconosciute. Si consiglia di definire sempre il limite superiore di ciascuna dimensione di una matrice prima di provare ad accedere a un elemento. Se la matrice non è stata creata con una clausola New di Visual Basic, è possibile che il valore del limite inferiore sia diverso da 0. Per questo motivo, è consigliabile definire anche il limite inferiore.

Definizione della dimensione

Durante la definizione dei limiti di una matrice multidimensionale, è necessario prestare particolare attenzione al modo in cui viene specificata la dimensione. I parametri dimension dei metodi GetLowerBound e GetUpperBound sono basati sul valore 0 e i parametri Rank di Funzione LBound (Visual Basic) e Funzione UBound (Visual Basic) di Visual Basic sono basati su 1.

Vedere anche

Attività

Procedura: dichiarare una variabile di matrice

Procedura: creare una matrice

Procedura: creare una matrice con più dimensioni

Procedura: creare una matrice di matrici

Procedura: creare una matrice con diversi tipi di elemento

Procedura: creare una matrice senza elementi

Procedura: inizializzare una variabile di matrice

Procedura: inizializzare una matrice multidimensionale

Procedura: inizializzare una matrice irregolare

Altre risorse

Matrici in Visual Basic