IEnumerator.MoveNext メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As IEnumerator Dim returnValue As Boolean returnValue = instance.MoveNext
列挙子が次の要素に正常に進んだ場合は true。列挙子がコレクションの末尾を越えた場合は false。


列挙子を作成した後や Reset メソッドを呼び出した後は、列挙子はコレクションの最初の要素の前に位置しています。MoveNext を最初に呼び出すと、列挙子はコレクションの最初の要素に移動します。
MoveNext がコレクションの末尾を過ぎると、列挙子はコレクションの最後の要素の後ろに配置され、MoveNext は false を返します。列挙子がこの位置にある場合、以降、MoveNext を呼び出しても、Reset が呼び出されるまでは false が返されます。
コレクションが変更されない限り、列挙子は有効なままです。要素の追加、変更、削除などの変更がコレクションに対して実行されると、列挙子は回復不可能な無効状態になり、次に MoveNext または Reset を呼び出すと InvalidOperationException がスローされます。

カスタム コレクションでの IEnumerator インターフェイスの実装を次のコード例に示します。この例では、MoveNext が明示的に呼び出されていませんが、foreach (Visual Basic では for each) の使用をサポートするために実装されています。このコード例は、IEnumerator インターフェイスのトピックで取り上げているコード例の一部です。
Public Class PeopleEnum Implements IEnumerator Public _people() As Person ' Enumerators are positioned before the first element ' until the first MoveNext() call. Dim position As Integer = -1 Public Sub New(ByVal list() As Person) _people = list End Sub Public Function MoveNext() As Boolean Implements IEnumerator.MoveNext position = position + 1 Return (position < _people.Length) End Function Public Sub Reset() Implements IEnumerator.Reset position = -1 End Sub Public ReadOnly Property Current() As Object Implements IEnumerator.Current Get Try Return _people(position) Catch ex As IndexOutOfRangeException Throw New InvalidOperationException() End Try End Get End Property End Class
public class PeopleEnum : IEnumerator { public Person[] _people; // Enumerators are positioned before the first element // until the first MoveNext() call. int position = -1; public PeopleEnum(Person[] list) { _people = list; } public bool MoveNext() { position++; return (position < _people.Length); } public void Reset() { position = -1; } public object Current { get { try { return _people[position]; } catch (IndexOutOfRangeException) { throw new InvalidOperationException(); } } } }

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からIEnumerator.MoveNext メソッドを検索する場合は、下記のリンクをクリックしてください。

- IEnumerator.MoveNext メソッドのページへのリンク