ReDim Deyimi (Visual Basic)

, Bir dizi değişkeni için depolama alanını yeniden konumlandırır.

Syntax

ReDim [ Preserve ] name(boundlist) [ ,  name(boundlist) [, ... ] ]  

Bölümler

Süre Tanım
Preserve İsteğe bağlı. Yalnızca son boyutun boyutunu değiştirirken mevcut dizideki verileri korumak için kullanılan değiştirici.
name Gereklidir. Dizi değişkeninin adı. Bkz. tanımlanmış öğe adları.
boundlist Gereklidir. Yeniden tanımlanmış dizinin her boyutunun sınırları listesi.

Açıklamalar

ReDimÖnceden tanımlanmış bir dizinin bir veya daha fazla boyutunun boyutunu değiştirmek için ifadesini kullanabilirsiniz. Büyük bir diziniz varsa ve bazı öğeleri artık gerekmiyorsa, ReDim dizi boyutunu azaltarak belleği serbest bırakabilirsiniz. Öte yandan, dizide daha fazla öğe gerekiyorsa, ReDim bunları ekleyebilir.

ReDimİfade yalnızca diziler için tasarlanmıştır. Yapı değerleri (yalnızca tek bir değer içeren değişkenler), koleksiyonlar veya yapılar üzerinde geçerli değildir. Türünde bir değişken bildirirseniz Array , ReDim deyimin yeni diziyi oluşturmak için yeterli tür bilgilerine sahip olmadığını unutmayın.

ReDimYalnızca yordam düzeyinde kullanabilirsiniz. Bu nedenle, değişken için bildirim bağlamı bir yordam olmalıdır; Kaynak dosya, ad alanı, arabirim, sınıf, yapı, modül veya blok olamaz. Daha fazla bilgi için bkz. bildirim bağlamları ve varsayılan erişim düzeyleri.

Kurallar

  • Birden çok değişken. Aynı bildirim deyimindeki birkaç dizi değişkenini yeniden boyutlandırabilir ve name boundlist her değişken için ve parçalarını belirtebilirsiniz. Birden çok değişken virgülle ayrılır.

  • Dizi sınırları. İçindeki her giriş boundlist , bu boyutun alt ve üst sınırlarını belirtebilir. Alt sınır her zaman 0 (sıfır) olur. Üst sınır, boyutun uzunluğunu değil, bu boyut için mümkün olan en yüksek dizin değeridir (üst sınır artı bir değerdir). Her boyutun dizini, üst sınır değeri ile 0 arasında değişebilir.

    İçindeki boyutların sayısı, boundlist dizinin orijinal boyut (derece) sayısıyla eşleşmelidir.

  • Veri türleri. ReDimİfade, bir dizi değişkeninin veya öğelerinin veri türünü değiştiremiyor.

  • Başlatılmasında. ReDimİfade, dizi öğeleri için yeni başlatma değerleri sağlayamaz.

  • Sırası. ReDimİfade, dizinin derecesini (boyut sayısı) değiştiremiyor.

  • Preserve ile yeniden boyutlandırma. Kullanırsanız Preserve , yalnızca dizinin son boyutunu yeniden boyutlandırabilirsiniz. Diğer tüm boyutlar için, var olan dizinin bir ilişkisini belirtmeniz gerekir.

    Örneğin, dizide yalnızca bir boyut varsa, en son ve yalnızca boyutu değiştirdiğiniz için bu boyutu yeniden boyutlandırabilir ve dizinin tüm içeriğini koruyabilirsiniz. Ancak, dizide iki veya daha fazla boyut varsa, kullanırsanız yalnızca son boyutun boyutunu değiştirebilirsiniz Preserve .

  • Özelliklerinin. ReDimBir değer dizisini tutan bir özelliği kullanabilirsiniz.

Davranış

  • Dizi değiştirme. ReDim Mevcut diziyi serbest bırakır ve aynı dereceye sahip yeni bir dizi oluşturur. Yeni dizi, dizi değişkeninde yayınlanan dizinin yerini alır.

  • Preserve olmadan başlatma. Belirtmezseniz Preserve , ReDim Yeni dizinin öğelerini, veri türleri için varsayılan değeri kullanarak başlatır.

  • Preserve ile başlatma. belirtirseniz Preserve , Visual Basic öğeleri varolan diziden yeni diziye kopyalar.

Örnek

Aşağıdaki örnek, dizideki mevcut verileri kaybetmeden dinamik bir dizinin en son boyutunun boyutunu artırır ve sonra boyutu kısmi veri kaybıyla azaltır. Son olarak, boyutu özgün değerine geri düşürür ve tüm dizi öğelerini yeniden başlatır.

Dim intArray(10, 10, 10) As Integer
ReDim Preserve intArray(10, 10, 20)
ReDim Preserve intArray(10, 10, 15)
ReDim intArray(10, 10, 10)

Dimİfade üç boyutlu yeni bir dizi oluşturur. Her boyut 10 ' un bir bağı ile bildirildiği için her boyutun dizi dizini 0 ile 10 arasında değişebilir. Aşağıdaki tartışmada, üç boyut katman, satır ve sütun olarak adlandırılır.

İlki, ReDim değişkende var olan dizinin yerini alan yeni bir dizi oluşturur intArray . ReDim Varolan dizideki tüm öğeleri yeni diziye kopyalar. Ayrıca, her katmandaki her satırın sonuna 10 daha fazla sütun ekler ve bu yeni sütunlardaki öğeleri 0 ' a ( Integer dizinin öğe türü olan varsayılan değeri) başlatır.

İkincisi ReDim başka bir yeni dizi oluşturur ve uygun olan tüm öğeleri kopyalar. Ancak, her katmandaki her satırın sonundan beş sütun kaybolur. Bu sütunları kullanmayı bitirdiğinizde bu bir sorun değildir. Büyük bir dizinin boyutunu azaltmak artık ihtiyaç duymayacak belleği serbest bırakabilirsiniz.

Üçüncü, ReDim Yeni bir dizi oluşturur ve her katmandaki her satırın sonundan başka beş sütunu kaldırır. Bu kez, var olan herhangi bir öğeyi kopyalamaz. Bu ifade, diziyi özgün boyutuna geri döndürür. İfadeyi Preserve değiştirici içermediğinden, tüm dizi öğelerini özgün varsayılan değerlerine ayarlar.

Daha fazla örnek için bkz. diziler.

Ayrıca bkz.