Aracılığıyla paylaş


Dizilerle İlgili Sorun Giderme (Visual Basic)

Bu sayfada, dizilerle çalışırken oluşabilecek bazı yaygın sorunlar listelenir.

DiziYi Bildirme ve Başlatma Derleme Hataları

Derleme hataları, dizileri bildirme, oluşturma ve başlatma kurallarının yanlış anlaşılmasından kaynaklanabilir. Hataların en yaygın nedenleri şunlardır:

  • Dizi değişkeni bildiriminde boyut uzunluklarını belirttikten sonra New Operator yan tümcesi sağlama. Aşağıdaki kod satırları bu türdeki geçersiz bildirimleri gösterir.

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

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

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

  • Pürüzlü bir dizinin en üst düzey dizisinden daha fazlası için boyut uzunluklarını belirtme. Aşağıdaki kod satırında bu tür geçersiz bir bildirim gösterilmektedir.

    Dim INVALIDjaggedByteArray(1)(1) As Byte

  • New Öğe değerlerini belirtirken anahtar sözcüğünü atlama. Aşağıdaki kod satırında bu tür geçersiz bir bildirim gösterilmektedir.

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

  • Küme ayracı ( olmadan bir New yan tümcesi sağlama{}. Aşağıdaki kod satırları bu türdeki geçersiz bildirimleri gösterir.

    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)

Sınır Dışı Diziye Erişme

Bir diziyi başlatma işlemi, her boyuta bir üst ve alt sınır atar. Dizinin bir öğesine her erişim, her boyut için geçerli bir dizin veya alt simge belirtmelidir. Herhangi bir dizin alt sınırının altında veya üst sınırının üstündeyse, özel durum IndexOutOfRangeException sonuçlanır. Derleyici böyle bir hatayı algılayamaz, bu nedenle çalışma zamanında bir hata oluşur.

Sınırları Belirleme

Başka bir bileşen, örneğin yordam bağımsız değişkeni olarak kodunuz için bir dizi geçirirse, bu dizinin boyutunu veya boyutlarının uzunluklarını bilemezsiniz. Herhangi bir öğeye erişmeye çalışmadan önce her zaman dizinin her boyutu için üst sınırı belirlemeniz gerekir. Dizi Bir Visual Basic New yan tümcesi dışında bir yolla oluşturulduysa, alt sınır 0 dışında bir şey olabilir ve bu alt sınırı da belirlemek en güvenlidir.

Boyutu Belirtme

Çok boyutlu bir dizinin sınırlarını belirlerken, boyutu nasıl belirttiğinize dikkat edin. ve yöntemlerinin GetLowerBound parametreleri 0 tabanlıykenRank, Visual Basic LBound ve UBound işlevlerinin parametreleri 1 tabanlıdır.GetUpperBounddimension

Ayrıca bkz.