innexoutofrangexception dalam C#
IndexOutOfRangeException berlaku apabila cuba mengakses array atau menetapkan elemen julat indeks yang berkesan dalam koleksi. Ini bermakna bahawa indeks yang anda gunakan adalah lebih rendah daripada sempadan atas batas bawah atau lebih tinggi daripada (atau sama) koleksi. Masa kejadian abnormal
Pertimbangkan array yang dipanggil
, saiz 4:
Indeks akses 0 hingga 3 adalah sah, tetapi cuba mengakses akan mencetuskan keabnormalan indexoutofrangexception. array
<code class="language-csharp">byte[] array = new byte[4];</code>
array[4]
<.> 1. Panjang array
Arahan didasarkan pada 0, jadi indeks elemen pertama adalah 0, dan indeks elemen terakhir adalah panjang -1.
Elakkan menggunakan elemen akses indeks sama dengan panjang, seperti .
array[array.Length] = 0;
indeks array tidak termasuk batas atas. .
<.> 3. Arahan tidak akan berkembang secara automatikpixels[imageWidth, imageHeight]
<.> 4. Sempadan array tersuai
Array.Resize<T>()
Sahkan parameter memasuki atau diserahkan kepada fungsi untuk mengelakkan akses kepada indeks di luar julat.
Fungsi carian boleh kembali -1 ke item yang luar biasa. Rawatan situasi ini untuk mengelakkan keabnormalan dalam akses array berikutnya.
Apabila mengakses data dari pangkalan data dengan Idareader, pastikan untuk menyediakan indeks lajur yang berkesan.
bagaimana untuk mengelakkan
Gunakan atau pengesahan keadaan objek untuk memastikan prasyarat yang betul.
Semak penjejakan timbunan untuk menentukan garis keabnormalan. Semak array dan indeks yang berkaitan untuk memastikan bahawa ia berada dalam julat yang berkesan.
Atas ialah kandungan terperinci Mengapa IndexOutOfRangeException berlaku di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!