Maison >développement back-end >C++ >Pourquoi puis-je obtenir une erreur 'index hors de portée' dans mon code?

Pourquoi puis-je obtenir une erreur 'index hors de portée' dans mon code?

Susan Sarandon
Susan Sarandonoriginal
2025-01-29 08:29:11356parcourir

Why Do I Get an

Comprendre et résoudre ".NET" Index des erreurs de portée

Une "indexoutofRangeException" dans .NET se produit lorsque vous essayez d'accéder à un élément dans une collection (comme un tableau ou une liste) en utilisant un index non valide. Parce que les collections .NET sont indexées zéro, la plage d'index valide est de 0 à (longueur - 1). Tenter d'accéder à un élément au-delà de cette plage - en utilisant un indice négatif ou un index égal ou supérieur à la longueur - éclate cette exception.

illustrons avec un exemple de tableau:

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

Ici, numbers[5] tente d'accéder au sixième élément, qui n'existe pas, provoquant l'erreur.

Travailler avec d'autres collections

Cette indexation basée sur le zéro s'applique à d'autres collections, y compris List<T>. Le dernier élément accessible est toujours à l'index Count - 1.

Pour une itération sûre, envisagez d'utiliser une boucle for avec une vérification des limites explicites:

<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>

ou, encore mieux, utilisez une boucle foreach, qui gère automatiquement l'itération et empêche les erreurs d'index:

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

Empêcher IndexoutOfRangeExceptions

pour éviter ces exceptions:

  • Valider les indices: Avant d'accéder à un élément, vérifiez toujours que l'index est dans la plage valide (0 à Length - 1 ou Count - 1).
  • Utiliser Count ou Length: Utilisez la propriété Count (pour les listes) ou Length Propriété (pour les tableaux) pour déterminer la taille de la collection.
  • Préférer foreach: foreach Boucles Simplifier l'itération et éliminer le risque d'erreurs d'indexation manuelle.
  • Gérer les exceptions (gracieusement): Utiliser des blocs try-catch pour gérer les instances de potentiel IndexOutOfRangeException et empêcher les plantages d'application. Cela permet une gestion des erreurs plus robuste.

En comprenant ces principes et meilleures pratiques, vous pouvez écrire du code .NET plus fiable et sans erreur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn