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
Libérer: 2025-01-29 08:29:11
original
359 Les gens l'ont consulté

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:

int[] numbers = new int[5]; // Array with 5 elements (indices 0-4)
Console.WriteLine(numbers[5]); // Throws IndexOutOfRangeException
Copier après la connexion

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:

List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
for (int i = 0; i < names.Count; i++) {
    Console.WriteLine(names[i]);
}
Copier après la connexion

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

foreach (string name in names) {
    Console.WriteLine(name);
}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal