Rumah > pembangunan bahagian belakang > C++ > Mengapa saya mendapat ralat 'Indeks Out of Range' dalam kod saya?

Mengapa saya mendapat ralat 'Indeks Out of Range' dalam kod saya?

Susan Sarandon
Lepaskan: 2025-01-29 08:29:11
asal
324 orang telah melayarinya

Why Do I Get an

Memahami dan menyelesaikan ".NET" Indeks daripada ralat julat

"IndexOutOfRangeException" dalam .NET timbul apabila anda cuba mengakses item dalam koleksi (seperti array atau senarai) menggunakan indeks yang tidak sah. Kerana koleksi .NET adalah diindeks sifar, julat indeks yang sah adalah dari 0 hingga (panjang - 1). Cuba mengakses elemen di luar julat ini -menggunakan indeks negatif atau indeks yang sama dengan atau lebih besar daripada pencetus panjang pengecualian ini.

mari kita ilustrasikan dengan contoh array:

<code class="language-csharp">int[] numbers = new int[5]; // Array with 5 elements (indices 0-4)
Console.WriteLine(numbers[5]); // Throws IndexOutOfRangeException</code>
Salin selepas log masuk
di sini,

cuba mengakses elemen keenam, yang tidak wujud, menyebabkan kesilapan. numbers[5]

Bekerja dengan koleksi lain

Pengindeksan berasaskan sifar ini digunakan untuk koleksi lain, termasuk

. Unsur yang boleh diakses terakhir sentiasa di indeks List<T>. Count - 1

untuk lelaran yang selamat, pertimbangkan untuk menggunakan gelung

dengan batas eksplisit memeriksa: for

<code class="language-csharp">List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
for (int i = 0; i < names.Count; i++) {
    Console.WriteLine(names[i]);
}</code>
Salin selepas log masuk
atau, lebih baik, gunakan gelung

, yang mengendalikan lelaran secara automatik dan menghalang kesilapan indeks: foreach

<code class="language-csharp">foreach (string name in names) {
    Console.WriteLine(name);
}</code>
Salin selepas log masuk

Mencegah IndexOutOfRangeExceptions

untuk mengelakkan pengecualian ini:

  • Mengesahkan indeks: Sebelum mengakses elemen, selalu sahkan bahawa indeks berada dalam julat yang sah (0 hingga atau Length - 1). Count - 1
  • Gunakan atau Count: Length menggunakan harta (untuk senarai) atau Count harta (untuk tatasusunan) untuk menentukan saiz koleksi. Length
  • lebih suka : foreach gelung memudahkan lelaran dan menghapuskan risiko ralat pengindeksan manual. foreach
  • Mengendalikan pengecualian (dengan anggun): Gunakan blok untuk mengendalikan potensi contoh dan mencegah kemalangan aplikasi. Ini membolehkan pengendalian ralat yang lebih mantap. try-catch IndexOutOfRangeException
  • dengan memahami prinsip-prinsip dan amalan terbaik ini, anda boleh menulis lebih banyak kod .net.

Atas ialah kandungan terperinci Mengapa saya mendapat ralat 'Indeks Out of Range' dalam kod saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan