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