ホームページ > バックエンド開発 > C++ > コードで「範囲外」エラーを取得するのはなぜですか?

コードで「範囲外」エラーを取得するのはなぜですか?

Susan Sarandon
リリース: 2025-01-29 08:29:11
オリジナル
324 人が閲覧しました

Why Do I Get an

「.NET "インデックスの理解と解決の範囲外エラー

.NETの「indexoutofRangeException」は、無効なインデックスを使用してコレクション内のアイテム(配列やリストなど)にアクセスしようとすると発生します。 .NETコレクションはゼロインデックス化されているため、有効なインデックス範囲は0から(長さ-1)です。 この範囲を超えた要素にアクセスしようとすると、ネガティブインデックスまたは長さ以上のインデックスを使用して、この例外を魅了します。

配列の例で説明しましょう:

ここで、
<code class="language-csharp">int[] numbers = new int[5]; // Array with 5 elements (indices 0-4)
Console.WriteLine(numbers[5]); // Throws IndexOutOfRangeException</code>
ログイン後にコピー
6番目の要素にアクセスしようとしますが、これは存在せず、エラーを引き起こします。

numbers[5]他のコレクションと協力しています

このゼロベースのインデックスは、を含む他のコレクションに適用されます。 最後のアクセス可能な要素は、常にindex

にあります

安全なイテレーションについては、明示的な境界チェックを備えたList<T>ループを使用することを検討してください:Count - 1

またはさらに良いことに、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>
ログイン後にコピー

IndexOutOfRangeExceptionsの防止foreach

<code class="language-csharp">foreach (string name in names) {
    Console.WriteLine(name);
}</code>
ログイン後にコピー

インデックスの検証:要素にアクセスする前に、インデックスが有効な範囲内にあることを必ず確認してください(0〜または

)。

使用
    または
  • プロパティ(リスト用)またはLength - 1プロパティ(配列用)を使用して、コレクションのサイズを決定します。 Count - 1
  • 優先
  • Countループは反復を簡素化し、手動インデックスエラーのリスクを排除します。 Length例外を処理する(優雅に):Countブロックを使用して、潜在的なLengthインスタンスを処理し、アプリケーションのクラッシュを防ぎます。 これにより、より堅牢なエラー処理が可能になります
  • これらの原則とベストプラクティスを理解することにより、より信頼性とエラーのない.NETコードを書くことができます。

以上がコードで「範囲外」エラーを取得するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート