IndexOutOfRangeException IndexOutOfRangeException IndexOutOfRangeException IndexOutOfRangeException Class

定義

境界外のインデックスを使用して配列またはコレクションの要素にアクセスしようとしたときにスローされる例外。The exception that is thrown when an attempt is made to access an element of an array or collection with an index that is outside its bounds.

public ref class IndexOutOfRangeException sealed : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class IndexOutOfRangeException : SystemException
type IndexOutOfRangeException = class
    inherit SystemException
Public NotInheritable Class IndexOutOfRangeException
Inherits SystemException
継承
IndexOutOfRangeExceptionIndexOutOfRangeExceptionIndexOutOfRangeExceptionIndexOutOfRangeException
属性

注釈

IndexOutOfRangeException無効なインデックスを使用して、配列またはコレクションのメンバーにアクセスする、またはバッファー内の特定の場所から読み取り/書き込みで例外がスローされます。An IndexOutOfRangeException exception is thrown when an invalid index is used to access a member of an array or a collection, or to read or write from a particular location in a buffer. この例外の継承、Exceptionクラスがない一意のメンバーを追加ができます。This exception inherits from the Exception class but adds no unique members.

通常、IndexOutOfRangeException開発者のエラーの結果として例外がスローされます。Typically, an IndexOutOfRangeException exception is thrown as a result of developer error. 例外を処理する代わりには、エラーの原因を診断し、コードを修正する必要があります。Instead of handling the exception, you should diagnose the cause of the error and correct your code. エラーの最も一般的な原因は次のとおりです。The most common causes of the error are:

  • 次の例として、要素またはメンバーの数よりも小さいを示しますが、0 から始まる配列またはコレクションの上限が、1 つになることを忘れてしまった。Forgetting that the upper bound of a collection or a zero-based array is one less than its number of members or elements, as the following example illustrates.

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       public static void Main()
       {
          List<Char> characters = new List<Char>();
          characters.InsertRange(0, new Char[] { 'a', 'b', 'c', 'd', 'e', 'f' } );
          for (int ctr = 0; ctr <= characters.Count; ctr++)
             Console.Write("'{0}'    ", characters[ctr]);
       }
    }
    // The example displays the following output:
    //    'a'    'b'    'c'    'd'    'e'    'f'
    //    Unhandled Exception: 
    //    System.ArgumentOutOfRangeException: 
    //    Index was out of range. Must be non-negative and less than the size of the collection.
    //    Parameter name: index
    //       at Example.Main()
    
    Imports System.Collections.Generic
    
    Module Example
       Public Sub Main()
          Dim characters As New List(Of Char)()
          characters.InsertRange(0, { "a"c, "b"c, "c"c, "d"c, "e"c, "f"c} )
          For ctr As Integer = 0 To characters.Count
             Console.Write("'{0}'    ", characters(ctr))
          Next
       End Sub
    End Module
    ' The example displays the following output:
    '    'a'    'b'    'c'    'd'    'e'    'f'
    '    Unhandled Exception: 
    '    System.ArgumentOutOfRangeException: 
    '    Index was out of range. Must be non-negative and less than the size of the collection.
    '    Parameter name: index
    '       at System.Collections.Generic.List`1.get_Item(Int32 index)
    '       at Example.Main()
    

    エラーを修正するには、次のようなコードを使用できます。To correct the error, you can use code like the following.

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       public static void Main()
       {
          List<Char> characters = new List<Char>();
          characters.InsertRange(0, new Char[] { 'a', 'b', 'c', 'd', 'e', 'f' } );
          for (int ctr = 0; ctr < characters.Count; ctr++)
             Console.Write("'{0}'    ", characters[ctr]);
       }
    }
    // The example displays the following output:
    //        'a'    'b'    'c'    'd'    'e'    'f'
    
    Imports System.Collections.Generic
    
    Module Example
       Public Sub Main()
          Dim characters As New List(Of Char)()
          characters.InsertRange(0, { "a"c, "b"c, "c"c, "d"c, "e"c, "f"c} )
          For ctr As Integer = 0 To characters.Count - 1
             Console.Write("'{0}'    ", characters(ctr))
          Next
       End Sub
    End Module
    ' The example displays the following output:
    '       'a'    'b'    'c'    'd'    'e'    'f'
    

    または、配列内のすべての要素を反復処理をインデックスには、代わりにすることができますを使用して、foreachステートメント (c#) またはFor Eachステートメント (Visual Basic) でします。Alternately, instead of iterating all the elements in the array by their index, you can use the foreach statement (in C#) or the For Each statement (in Visual Basic).

  • 配列の要素を適切に次元されていないと、元の配列よりも少ない要素を持つ別の配列に割り当てるしようとしています。Attempting to assign an array element to another array that has not been adequately dimensioned and that has fewer elements than the original array. 次の例は、最後の要素を代入しようとしています、value1配列内の同じ要素をvalue2配列。The following example attempts to assign the last element in the value1 array to the same element in the value2 array. ただし、value2配列がされて適切に関連付けられていないが 7 つの要素ではなく 6。However, the value2 array has been incorrectly dimensioned to have six instead of seven elements. その結果、割り当てがスローされます、IndexOutOfRangeException例外。As a result, the assignment throws an IndexOutOfRangeException exception.

    public class Example
    {
       public static void Main()
       {
          int[] values1 = { 3, 6, 9, 12, 15, 18, 21 };
          int[] values2 = new int[6];
          
          // Assign last element of the array to the new array.
          values2[values1.Length - 1] = values1[values1.Length - 1];
       }
    }
    // The example displays the following output:
    //       Unhandled Exception: 
    //       System.IndexOutOfRangeException: 
    //       Index was outside the bounds of the array.
    //       at Example.Main()
    
    Module Example
       Public Sub Main()
          Dim values1() As Integer = { 3, 6, 9, 12, 15, 18, 21 }
          Dim values2(5) As Integer
          
          ' Assign last element of the array to the new array.
          values2(values1.Length - 1) = values1(values1.Length - 1)
       End Sub
    End Module
    ' The example displays the following output:
    '       Unhandled Exception: 
    '       System.IndexOutOfRangeException: 
    '       Index was outside the bounds of the array.
    '       at Example.Main()
    
  • 値を使用して、配列または特定のインデックス位置からコレクションの一部を反復処理するメソッドを検索して返されます。Using a value returned by a search method to iterate a portion of an array or collection starting at a particular index position. ランタイムは、スロー、検索操作では、一致が見つかった、かどうかを確認するを忘れた場合、IndexOutOfRangeException例外は、この例で示すようにします。If you forget to check whether the search operation found a match, the runtime throws an IndexOutOfRangeException exception, as shown in this example.

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       static List<int> numbers = new List<int>();
    
       public static void Main()
       {
          int startValue; 
          string[] args = Environment.GetCommandLineArgs();
          if (args.Length < 2) 
             startValue = 2;
          else 
             if (! Int32.TryParse(args[1], out startValue))
                startValue = 2;
    
          ShowValues(startValue);
       }
       
       private static void ShowValues(int startValue)
       {   
          // Create a collection with numeric values.
          if (numbers.Count == 0)  
             numbers.AddRange( new int[] { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22} );
    
          // Get the index of a startValue.
          Console.WriteLine("Displaying values greater than or equal to {0}:",
                            startValue);
          int startIndex = numbers.IndexOf(startValue);
          // Display all numbers from startIndex on.
          for (int ctr = startIndex; ctr < numbers.Count; ctr++)
             Console.Write("    {0}", numbers[ctr]);
       }
    }
    // The example displays the following output if the user supplies
    // 7 as a command-line parameter:
    //    Displaying values greater than or equal to 7:
    //    
    //    Unhandled Exception: System.ArgumentOutOfRangeException: 
    //    Index was out of range. Must be non-negative and less than the size of the collection.
    //    Parameter name: index
    //       at System.Collections.Generic.List`1.get_Item(Int32 index)
    //       at Example.ShowValues(Int32 startValue)
    //       at Example.Main()
    
    Imports System.Collections.Generic
    
    Module Example
       Dim numbers As New List(Of Integer)
    
       Public Sub Main()
          Dim startValue As Integer 
          Dim args() As String = Environment.GetCommandLineArgs()
          If args.Length < 2 Then
             startValue = 2
          Else
             If Not Int32.TryParse(args(1), startValue) Then
                startValue = 2
             End If   
          End If
          ShowValues(startValue)
       End Sub
       
       Private Sub ShowValues(startValue As Integer)   
          ' Create a collection with numeric values.
          If numbers.Count = 0 Then 
             numbers.AddRange( { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22} )
          End If   
          ' Get the index of a particular number, in this case 7.
          Console.WriteLine("Displaying values greater than or equal to {0}:",
                            startValue)
          Dim startIndex As Integer = numbers.IndexOf(startValue)
          ' Display all numbers from startIndex on.
          For ctr As Integer = startIndex To numbers.Count - 1
             Console.Write("    {0}", numbers(ctr))
          Next
       End Sub
    End Module
    ' The example displays the following output if the user supplies
    ' 7 as a command-line parameter:
    '    Displaying values greater than or equal to 7:
    '    
    '    Unhandled Exception: System.ArgumentOutOfRangeException: 
    '    Index was out of range. Must be non-negative and less than the size of the collection.
    '    Parameter name: index
    '       at System.Collections.Generic.List`1.get_Item(Int32 index)
    '       at Example.ShowValues(Int32 startValue)
    '       at Example.Main()
    

    ここで、List<T>.IndexOfメソッドは、検索に失敗した場合、無効なインデックス値である-1 を返します。In this case, the List<T>.IndexOf method returns -1, which is an invalid index value, when it fails to find a match. このエラーを修正するには、この例で示すように、配列を反復処理する前に、search メソッドの戻り値を確認します。To correct this error, check the search method's return value before iterating the array, as shown in this example.

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
       static List<int> numbers = new List<int>();
    
       public static void Main()
       {
          int startValue; 
          string[] args = Environment.GetCommandLineArgs();
          if (args.Length < 2) 
             startValue = 2;
          else 
             if (! Int32.TryParse(args[1], out startValue))
                startValue = 2;
    
          ShowValues(startValue);
       }
       
       private static void ShowValues(int startValue)
       {   
          // Create a collection with numeric values.
          if (numbers.Count == 0)  
             numbers.AddRange( new int[] { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22} );
    
          // Get the index of startValue.
          int startIndex = numbers.IndexOf(startValue);
          if (startIndex < 0) {
             Console.WriteLine("Unable to find {0} in the collection.", startValue);
          }
          else {
             // Display all numbers from startIndex on.
             Console.WriteLine("Displaying values greater than or equal to {0}:",
                            startValue);
             for (int ctr = startIndex; ctr < numbers.Count; ctr++)
                Console.Write("    {0}", numbers[ctr]);
          }
       }
    }
    // The example displays the following output if the user supplies
    // 7 as a command-line parameter:
    //      Unable to find 7 in the collection.
    
    Imports System.Collections.Generic
    
    Module Example
       Dim numbers As New List(Of Integer)
    
       Public Sub Main()
          Dim startValue As Integer 
          Dim args() As String = Environment.GetCommandLineArgs()
          If args.Length < 2 Then
             startValue = 2
          Else
             If Not Int32.TryParse(args(1), startValue) Then
                startValue = 2
             End If   
          End If
          ShowValues(startValue)
       End Sub
       
       Private Sub ShowValues(startValue As Integer)   
          ' Create a collection with numeric values.
          If numbers.Count = 0 Then 
             numbers.AddRange( { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22} )
          End If   
          ' Get the index of startValue.
          Dim startIndex As Integer = numbers.IndexOf(startValue)
          If startIndex < 0 Then
             Console.WriteLine("Unable to find {0} in the collection.", startValue)
          Else
             ' Display all numbers from startIndex on.
             Console.WriteLine("Displaying values greater than or equal to {0}:",
                            startValue)
             For ctr As Integer = startIndex To numbers.Count - 1
                Console.Write("    {0}", numbers(ctr))
             Next
          End If
       End Sub
    End Module
    ' The example displays the following output if the user supplies
    '       Unable to find 7 in the collection.
    
  • 使用して、または結果セット、コレクション、または返されるオブジェクトに有効なデータがあるかどうかをテストすることがなく、クエリによって返される配列を列挙しようとしました。Trying to use or enumerate a result set, collection, or array returned by a query without testing whether the returned object has any valid data.

  • 計算値を使用して、開始インデックス、終了インデックス、または反復処理する項目の数を定義します。Using a computed value to define the starting index, the ending index, or the number of items to be iterated. 計算の結果が予想される場合に生じる、IndexOutOfRangeException例外。If the result of the computation is unexpected, it might result in an IndexOutOfRangeException exception. インデックス値の計算に、プログラムのロジックを確認し、配列またはコレクションを反復処理する前に、値を検証する必要があります。You should check your program's logic in calculating the index value and validate the value before iterating the array or collection. 次の条件すべてがあります。それ以外の場合、IndexOutOfRangeException例外がスローされます。The following conditions must all be true; otherwise, an IndexOutOfRangeException exception is thrown:

    • 大きいまたは等しい開始インデックスがある必要がありますArray.GetLowerBoundの次元の配列を反復処理するか、コレクションの場合は 0 以上。The starting index must be greater than or equal to Array.GetLowerBound for the dimension of the array that you want to iterate, or greater than or equal to 0 for a collection.

    • 終了インデックスを超えることはできませんArray.GetUpperBoundの次元の配列を反復処理、またはことはできませんよりも大きい値を指定する、Countコレクションのプロパティ。The ending index cannot exceed Array.GetUpperBound for the dimension of the array that you want to iterate, or cannot be greater than or equal to the Count property of a collection.

    • 次の式は、反復処理する配列のディメンションの場合は true である必要があります。The following equation must be true for the dimension of the array that you want to iterate:

      start_index >= lower_bound And start_index + items_to_iterate - 1 <= upper_bound  
      

      コレクションの次の式を満たす必要があります。For a collection, the following equation must be true:

      start_index >= 0 And start_index + items_to_iterate <= Count  
      

      ヒント

      配列またはコレクションの開始インデックスは、負の数値をすることはできません。The starting index of an array or collection can never be a negative number.

  • 配列は、0 から始まる必要があることを想定しています。Assuming that an array must be zero-based. 作成できますが、0 から始まる配列、Array.CreateInstance(Type, Int32[], Int32[])メソッドが CLS に準拠していない、COM 相互運用機能によって返されるとします。Arrays that are not zero-based can be created by the Array.CreateInstance(Type, Int32[], Int32[]) method and can be returned by COM interop, although they aren't CLS-compliant. 次の例を示しています、IndexOutOfRangeExceptionで作成された 0 から始まらない配列を反復処理するときにスローされた、Array.CreateInstance(Type, Int32[], Int32[])メソッド。The following example illustrates the IndexOutOfRangeException that is thrown when you try to iterate a non-zero-based array created by the Array.CreateInstance(Type, Int32[], Int32[]) method.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          Array values = Array.CreateInstance(typeof(int), new int[] { 10 }, 
                                              new int[] { 1 });
          int value = 2;
          // Assign values.
          for (int ctr = 0; ctr < values.Length; ctr++) {
             values.SetValue(value, ctr);
             value *= 2;
          }
          
          // Display values.
          for (int ctr = 0; ctr < values.Length; ctr++)
             Console.Write("{0}    ", values.GetValue(ctr));
       }
    }
    // The example displays the following output:
    //    Unhandled Exception: 
    //    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    //       at System.Array.InternalGetReference(Void* elemRef, Int32 rank, Int32* pIndices)
    //       at System.Array.SetValue(Object value, Int32 index)
    //       at Example.Main()
    
    Module Example
       Public Sub Main()
          Dim values = Array.CreateInstance(GetType(Integer), { 10 }, { 1 })
          Dim value As Integer = 2
          ' Assign values.
          For ctr As Integer = 0 To values.Length - 1
             values(ctr) = value
             value *= 2
          Next
          
          ' Display values.
          For ctr As Integer = 0 To values.Length - 1
             Console.Write("{0}    ", values(ctr))
          Next
       End Sub
    End Module
    ' The example displays the following output:
    '    Unhandled Exception: 
    '    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    '       at System.Array.InternalGetReference(Void* elemRef, Int32 rank, Int32* pIndices)
    '       at System.Array.SetValue(Object value, Int32 index)
    '       at Microsoft.VisualBasic.CompilerServices.NewLateBinding.ObjectLateIndexSetComplex(Obje
    '    ct Instance, Object[] Arguments, String[] ArgumentNames, Boolean OptimisticSet, Boolean RV
    '    alueBase)
    '       at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateIndexSet(Object Instance,
    '    Object[] Arguments, String[] ArgumentNames)
    '       at Example.Main()
    

    次の例のように、エラーを修正を呼び出すことができます、GetLowerBoundメソッドではなく、配列の開始インデックスを想定します。To correct the error, as the following example does, you can call the GetLowerBound method instead of making assumptions about the starting index of an array.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          Array values = Array.CreateInstance(typeof(int), new int[] { 10 }, 
                                              new int[] { 1 });
          int value = 2;
          // Assign values.
          for (int ctr = values.GetLowerBound(0); ctr <= values.GetUpperBound(0); ctr++) {
             values.SetValue(value, ctr);
             value *= 2;
          }
          
          // Display values.
          for (int ctr = values.GetLowerBound(0); ctr <= values.GetUpperBound(0); ctr++)
             Console.Write("{0}    ", values.GetValue(ctr));
       }
    }
    // The example displays the following output:
    //        2    4    8    16    32    64    128    256    512    1024
    
    Module Example
       Public Sub Main()
          Dim values = Array.CreateInstance(GetType(Integer), { 10 }, { 1 })
          Dim value As Integer = 2
          ' Assign values.
          For ctr As Integer = values.GetLowerBound(0) To values.GetUpperBound(0)
             values(ctr) = value
             value *= 2
          Next
          
          ' Display values.
          For ctr As Integer = values.GetLowerBound(0) To values.GetUpperBound(0)
             Console.Write("{0}    ", values(ctr))
          Next
       End Sub
    End Module
    ' The example displays the following output:
    '       2    4    8    16    32    64    128    256    512    1024
    

    呼び出すときに注意して、 GetLowerBound 、配列の開始インデックスを取得するメソッドを呼び出す必要もあります、Array.GetUpperBound(Int32)終了インデックスを取得します。Note that when you call the GetLowerBound method to get the starting index of an array, you should also call the Array.GetUpperBound(Int32) method to get its ending index.

  • インデックスと数値の配列またはコレクション内のインデックスにある値が混乱します。Confusing an index and the value at that index in a numeric array or collection. 使用する場合に、通常、この問題が発生した、foreachステートメント (c#) またはFor Eachステートメント (Visual Basic) でします。This issue usually occurs when using the foreach statement (in C#) or the For Each statement (in Visual Basic). この問題を説明する例を次に示します。The following example illustrates the problem.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          // Generate array of random values.
          int[] values = PopulateArray(5, 10);
          // Display each element in the array.
          foreach (var value in values)
             Console.Write("{0}   ", values[value]);
       }
    
       private static int[] PopulateArray(int items, int maxValue)
       {
          int[] values = new int[items];
          Random rnd = new Random();
          for (int ctr = 0; ctr < items; ctr++)
             values[ctr] = rnd.Next(0, maxValue + 1);   
    
          return values;                                                      
       }
    }
    // The example displays output like the following:
    //    6   4   4
    //    Unhandled Exception: System.IndexOutOfRangeException: 
    //    Index was outside the bounds of the array.
    //       at Example.Main()
    
    Module Example
       Public Sub Main()
          ' Generate array of random values.
          Dim values() As Integer = PopulateArray(5, 10)
          ' Display each element in the array.
          For Each value In values
             Console.Write("{0}   ", values(value))
          Next
       End Sub
       
       Private Function PopulateArray(items As Integer, 
                                      maxValue As Integer) As Integer()
          Dim values(items - 1) As Integer
          Dim rnd As New Random()
          For ctr As Integer = 0 To items - 1
             values(ctr) = rnd.Next(0, maxValue + 1)   
          Next    
          Return values                                                      
       End Function
    End Module
    ' The example displays output like the following:
    '    6   4   4
    '    Unhandled Exception: System.IndexOutOfRangeException: 
    '    Index was outside the bounds of the array.
    '       at Example.Main()
    

    イテレーションの構成体は、配列またはコレクションのインデックスなしで各値を返します。The iteration construct returns each value in an array or collection, not its index. 例外を取り除くには、このコードを使用します。To eliminate the exception, use this code.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          // Generate array of random values.
          int[] values = PopulateArray(5, 10);
          // Display each element in the array.
          foreach (var value in values)
             Console.Write("{0}   ", value);
       }
    
       private static int[] PopulateArray(int items, int maxValue)
       {
          int[] values = new int[items];
          Random rnd = new Random();
          for (int ctr = 0; ctr < items; ctr++)
             values[ctr] = rnd.Next(0, maxValue + 1);   
    
          return values;                                                      
       }
    }
    // The example displays output like the following:
    //        10   6   7   5   8
    
    Module Example
       Public Sub Main()
          ' Generate array of random values.
          Dim values() As Integer = PopulateArray(5, 10)
          ' Display each element in the array.
          For Each value In values
             Console.Write("{0}   ", value)
          Next
       End Sub
       
       Private Function PopulateArray(items As Integer, 
                                      maxValue As Integer) As Integer()
          Dim values(items - 1) As Integer
          Dim rnd As New Random()
          For ctr As Integer = 0 To items - 1
             values(ctr) = rnd.Next(0, maxValue + 1)   
          Next    
          Return values                                                      
       End Function
    End Module
    ' The example displays output like the following:
    '       10   6   7   5   8
    
  • 無効な列名を指定する、DataView.Sortプロパティ。Providing an invalid column name to the DataView.Sort property.

  • スレッド セーフに違反します。Violating thread safety. 同じからの読み取りなどの操作StreamReaderオブジェクト、同じへの書き込みStreamWriter、複数のスレッドからオブジェクトまたは内のオブジェクトを列挙する、Hashtable異なるスレッドからは、スロー、IndexOutOfRangeExceptionでオブジェクトがアクセスされていない場合、スレッド セーフな方法です。Operations such as reading from the same StreamReader object, writing to the same StreamWriter object from multiple threads, or enumerating the objects in a Hashtable from different threads can throw an IndexOutOfRangeException if the object isn't accessed in a thread-safe way. この例外は、競合状態に依存するために通常断続的です。This exception is typically intermittent because it relies on a race condition.

ハード コーディングされたインデックス値を使用して配列を操作するはインデックス値が正しくないか、無効な場合、または操作されている配列のサイズが予期されていない場合は、例外をスローする可能性があります。Using hard-coded index values to manipulate an array is likely to throw an exception if the index value is incorrect or invalid, or if the size of the array being manipulation is unexpected. スローすることから、操作を防ぐために、IndexOutOfRangeException例外では、次を行うことができます。To prevent an operation from throwing an IndexOutOfRangeException exception, you can do the following:

  • 使用して、配列の要素を反復処理、 foreachステートメント (c#) またはごとにしています.[次へ]インデックスを使用して要素を反復処理ではなく (Visual Basic) で構築します。Iterate the elements of the array using the foreach statement (in C#) or the For Each...Next construct (in Visual Basic) instead of iterating elements by index.

  • によって返されるインデックスから始まるインデックスを使用して要素を反復処理、Array.GetLowerBoundメソッドとによって返されるインデックスで終了するまで、Array.GetUpperBoundメソッド。Iterate the elements by index starting with the index returned by the Array.GetLowerBound method and ending with the index returned by the Array.GetUpperBound method.

  • 別の 1 つの配列の要素を割り当てる場合は先の配列に少なくとも同じ数の要素、ソース配列と比較することによってことを確認、Array.Lengthプロパティ。If you are assigning elements in one array to another, ensure that the target array has at least as many elements as the source array by comparing their Array.Length properties.

インスタンスの初期プロパティ値の一覧についてはIndexOutOfRangeExceptionを参照してください、IndexOutOfRangeExceptionコンス トラクター。For a list of initial property values for an instance of IndexOutOfRangeException, see the IndexOutOfRangeException constructors.

次の中間言語 (IL) の手順については、スロー IndexOutOfRangeException:The following intermediate language (IL) instructions throw IndexOutOfRangeException:

  • ldelem.<type>ldelem.<type>

  • ldelemaldelema

  • stelem.<type>stelem.<type>

IndexOutOfRangeException 値は 0x80131508 HRESULT COR_E_INDEXOUTOFRANGE を使用します。IndexOutOfRangeException uses the HRESULT COR_E_INDEXOUTOFRANGE, which has the value 0x80131508.

コンストラクター

IndexOutOfRangeException() IndexOutOfRangeException() IndexOutOfRangeException() IndexOutOfRangeException()

IndexOutOfRangeException クラスの新しいインスタンスを初期化します。Initializes a new instance of the IndexOutOfRangeException class.

IndexOutOfRangeException(String) IndexOutOfRangeException(String) IndexOutOfRangeException(String) IndexOutOfRangeException(String)

指定したエラー メッセージを使用して、IndexOutOfRangeException クラスの新しいインスタンスを初期化します。Initializes a new instance of the IndexOutOfRangeException class with a specified error message.

IndexOutOfRangeException(String, Exception) IndexOutOfRangeException(String, Exception) IndexOutOfRangeException(String, Exception) IndexOutOfRangeException(String, Exception)

指定したエラー メッセージおよびこの例外の原因となった内部例外への参照を使用して、IndexOutOfRangeException クラスの新しいインスタンスを初期化します。Initializes a new instance of the IndexOutOfRangeException class with a specified error message and a reference to the inner exception that is the cause of this exception.

プロパティ

Data Data Data Data

例外に関する追加のユーザー定義情報を提供する、キー/値ペアのコレクションを取得します。Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

現在の例外の原因となる Exception インスタンスを取得します。Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

現在の例外を説明するメッセージを取得します。Gets a message that describes the current exception.

(Inherited from Exception)
Source Source Source Source

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

現在の例外がスローされたメソッドを取得します。Gets the method that throws the current exception.

(Inherited from Exception)

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Inherited from Exception)
GetType() GetType() GetType() GetType()

現在のインスタンスのランタイム型を取得します。Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在の例外の文字列形式を作成して返します。Creates and returns a string representation of the current exception.

(Inherited from Exception)

イベント

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

適用対象

こちらもご覧ください