Visual Basic'de diziler, aynı türden öğeleri depolayan sabit veya değişken uzunlukta bir yapı temsil eder. Özellikle dinamik diziler, başlatma ve boyut değişikliği sırasında dikkat gerektirir.
VB6'da yalnızca sabit ve dinamik diziler vardı, sabit veya değişken boyutlarda. VB.NET'de her türde güvenli tiplerle tam boyutlu tek boyutlu, çok boyutlu ve adım adım diziler uygulanmaktadır.
Yaygın hatalar —
Her zaman kullanılmadan önce diziyi başlatın ve dikkatlice boyutunu değiştirin:
' Tanım Dim arr() As Integer ' Başlatma ReDim arr(4) ' İndekslere 0–4 arr(0) = 1 ' Değerleri koruyarak boyutu değiştirme ReDim Preserve arr(6)
Ana özellikler:
Bir dizi tanımlanır, ancak başlatılmadan kullanılırsa ne olur?
Tek boyutlu diziler için Dim arr() As Integer değişken var ama dizi tahsis edilmez, arr.Length'e erişim bir istisna yaratır.
Çok boyutlu bir dizinin her iki boyutunu değiştirmek için ReDim Preserve kullanılabilir mi?
Hayır, ReDim Preserve yalnızca son boyutun değiştirilmesine izin verir, aksi takdirde çalışma zamanı hatası alınır.
ReDim Preserve ile boyut artırıldığında dizinin elemanları ne olur?
Eski değerler korunur, yeni elemanlar varsayılan değer alır (örneğin, Integer için 0, referans türleri için Nothing).
** Olumsuz durum
Dizi tanımlanmış, ancak başlatılmamış (Dim arr() As Integer), arr.Length'e erişim yaptığımızda NullReferenceException alırız.
Artılar:
Eksiler:
** Olumlu durum
Dizi her zaman açıkça ReDim ile başlatılır, boyut değişikliği yalnızca ana döngünün dışında yapılır ve sık değişen listeler için List(Of Integer) kullanılır.
Artılar:
Eksiler: