ReDim Deyimi (Visual Basic)

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

Sözdizimi

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

Parça

Süre Tanım
Preserve isteğe bağlı. Yalnızca son boyutun boyutunu değiştirdiğinizde var olan dizideki verileri korumak için kullanılan değiştirici.
name Gerekli. Dizi değişkeninin adı. Bkz. Bildirilen Öğe Adları.
boundlist Gerekli. Yeniden tanımlı dizinin her boyutunun sınırlarının listesi.

Açıklamalar

Deyimini ReDim , önceden bildirilmiş bir dizinin bir veya daha fazla boyutunu değiştirmek için kullanabilirsiniz. Büyük bir diziniz varsa ve artık bazı öğelerine ihtiyacınız yoksa, ReDim dizi boyutunu azaltarak belleği boşaltabilirsiniz. Öte yandan, diziniz daha fazla öğeye ihtiyaç duyuyorsa bunları ReDim ekleyebilir.

ReDim deyimi yalnızca diziler için tasarlanmıştır. Skalerler (yalnızca tek bir değer içeren değişkenler), koleksiyonlar veya yapılar için geçerli değildir. Türünde bir değişken Arraybildirirseniz deyiminin ReDim yeni diziyi oluşturmak için yeterli tür bilgilerine sahip olmadığını unutmayın.

Yalnızca yordam düzeyinde kullanabilirsiniz ReDim . Bu nedenle, değişkenin 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 deyiminde birkaç dizi değişkenini yeniden boyutlandırabilir ve her değişken için ve boundlist bölümlerini belirtebilirsinizname. Birden çok değişken virgülle ayrılır.

  • Dizi Sınırları. içindeki boundlist her girdi, bu boyutun alt ve üst sınırlarını belirtebilir. Alt sınır her zaman 0 'dır (sıfır). Üst sınır, boyutun uzunluğu (üst sınır artı bir) değil, bu boyut için mümkün olan en yüksek dizin değeridir. Her boyutun dizini 0'dan üst sınır değerine kadar değişebilir.

    içindeki boundlist boyut sayısı, dizinin özgün boyut sayısıyla (derece) eşleşmelidir.

  • Veri Türleri. deyimi, ReDim bir dizi değişkeninin veya öğelerinin veri türünü değiştiremez.

  • Başlatma. deyimi, ReDim dizi öğeleri için yeni başlatma değerleri sağlayamaz.

  • Rütbe. deyimi, ReDim dizinin derecesini (boyut sayısı) değiştiremez.

  • Preserve ile yeniden boyutlandırma. kullanıyorsanız Preserve, dizinin yalnızca son boyutunu yeniden boyutlandırabilirsiniz. Diğer tüm boyutlar için var olan dizinin bağlı olduğunu belirtmeniz gerekir.

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

  • Özellikler. Bir değer dizisini barındıran bir özellikte kullanabilirsiniz ReDim .

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şkenindeki serbest bırakılmış dizinin yerini alır.

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

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

Örnek

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

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

deyimi, Dim üç boyutlu yeni bir dizi oluşturur. Her boyut 10 sınırıyla bildirilir, bu nedenle 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şkenindeki intArraymevcut dizinin yerini alan yeni bir dizi oluşturur. ReDim varolan dizideki tüm öğeleri yeni diziye kopyalar. Ayrıca her katmandaki her satırın sonuna 10 sütun daha ekler ve bu yeni sütunlardaki öğeleri 0'a (dizinin öğe türü olan varsayılan değeri Integer) 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ı bitirdiyseniz bu sorun olmaz. Büyük bir dizinin boyutunu küçültmek artık ihtiyacınız olmayan belleği boşaltabilir.

Üçüncü ReDim , başka bir yeni dizi oluşturur ve her katmandaki her satırın sonundan beş sütun daha kaldırır. Bu kez var olan öğeleri kopyalamaz. Bu deyim diziyi özgün boyutuna döndürür. deyimi değiştiriciyi Preserve içermediğinden, tüm dizi öğelerini özgün varsayılan değerlerine ayarlar.

Ek örnekler için bkz . Diziler.

Ayrıca bkz.