Bagikan melalui


Pemecahan Masalah Larik (Visual Basic)

Halaman ini mencantumkan beberapa masalah umum yang dapat terjadi saat bekerja dengan larik.

Kompilasi Kesalahan Mendeklarasikan dan Menginisialisasi Larik

Kompilasi kesalahan dapat timbul dari kesalahpahaman aturan untuk mendeklarasikan, membuat, dan menginisialisasi larik. Penyebab kesalahan yang paling umum adalah sebagai berikut:

  • Menyediakan klausul Operator Baru setelah menentukan panjang dimensi di dalam deklarasi variabel larik. Baris kode berikut menunjukkan jenis-jenis deklarasi yang tidak valid untuk jenis ini.

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

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

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

  • Menentukan panjang dimensi agar lebih dari larik tingkat-teratas larik yang berliku. Baris kode berikut menunjukkan jenis deklarasi yang tidak valid untuk jenis ini.

    Dim INVALIDjaggedByteArray(1)(1) As Byte

  • Menghilangkan kata kunci New saat menentukan nilai elemen. Baris kode berikut menunjukkan jenis deklarasi yang tidak valid untuk jenis ini.

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

  • Menyediakan klausul New tanpa kurung kurawal ({}). Baris kode berikut menunjukkan jenis-jenis deklarasi yang tidak valid untuk jenis ini.

    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)

Mengakses Larik Di Luar Batas

Proses menginisialisasi larik menetapkan batas atas dan batas bawah ke setiap dimensi. Setiap akses ke elemen larik harus menentukan indeks yang valid, atau subskrip, untuk setiap dimensi. Jika ada indeks di bawah batas bawah, atau di atas batas atasnya, hasil pengecualian IndexOutOfRangeException. Kompilator tidak dapat mendeteksi kesalahan seperti itu, sehingga terjadi kesalahan pada run time.

Menentukan Batas

Jika komponen lain meneruskan larik ke kode Anda, misalnya sebagai argumen prosedur, Anda tidak tahu ukuran larik tersebut atau panjang dimensinya. Anda harus selalu menentukan batas atas untuk setiap dimensi larik, sebelum mencoba mengakses elemen apa pun. Jika larik telah dibuat dengan beberapa cara selain klausul Visual Basic New, batas bawah mungkin berupa sesuatu selain 0, dan juga paling aman untuk menentukan batas yang lebih rendah.

Menentukan Dimensi

Saat menentukan batas larik multidimensi, berhati-hatilah dengan cara Anda menentukan dimensi. Parameter dimension dari metode GetLowerBound dan GetUpperBound berbasis-0, sedangkan parameter Rank dari fungsi Visual Basic LBound dan UBound berbasis-1.

Lihat juga