Maison >développement back-end >C++ >Pourquoi puis-je obtenir une erreur 'index hors de portée' dans mon code?
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:
Length - 1
ou Count - 1
). 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. foreach
: foreach
Boucles Simplifier l'itération et éliminer le risque d'erreurs d'indexation manuelle. 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!