다음을 통해 공유


반복기(Visual Basic)

지정 하는 함수 또는 Get 접근자는 반복기입니다.

설명

반복기 컬렉션에서 사용자 지정 반복을 수행 합니다.반복기를 사용 하 여 산출 문 컬렉션에 있는 한 번에 각 요소를 반환 합니다.경우는 Yield 문을 도달, 코드의 현재 위치를 유지 합니다.실행 위치에서 다음 반복기 함수가 호출 될 때 다시 시작 됩니다.

함수 또는 반복기를 구현할 수 있는 Get 접근자는 속성 정의의.Iterator 한정자의 반복기 함수 선언에 나타납니다 또는 Get 접근자입니다.

사용 하 여 클라이언트 코드에서 반복기를 호출을 For Each...Next 문(Visual Basic).

반복기 함수의 반환 형식 또는 Get 접근자를 사용할 수 있습니다 IEnumerable, IEnumerable<T>, IEnumerator, 또는 IEnumerator<T>.

반복기를 사용할 수 없습니다 ByRef 매개 변수.

반복기는 이벤트, 인스턴스 생성자, 정적 생성자 또는 정적 소멸자에서 발생 하지 않습니다.

반복기는 익명 함수를 수 있습니다.자세한 내용은 반복기(C# 및 Visual Basic)를 참조하십시오.

반복기에 대한 자세한 내용은 반복기(C# 및 Visual Basic)를 참조하십시오.

용도

Iterator 한정자는 다음 컨텍스트에서 사용할 수 있습니다.

예제

다음 예제에서는 반복기 함수를 보여 줍니다.반복기 함수는 Yield 문 안에 For…다음 루프.반복할 때마다는 For Each 문의 본문에 Main 에 대 한 호출을 만듭니다는 Power 반복기 함수.반복기 함수를 호출할 때마다 계속 해 서 다음을 실행 하는 Yield 다음 반복의 과정에서 발생 하는 문의 For…Next 루프.

Sub Main()
    For Each number In Power(2, 8)
        Console.Write(number & " ")
    Next
    ' Output: 2 4 8 16 32 64 128 256
    Console.ReadKey()
End Sub

Private Iterator Function Power(
ByVal base As Integer, ByVal highExponent As Integer) _
As System.Collections.Generic.IEnumerable(Of Integer)

    Dim result = 1

    For counter = 1 To highExponent
        result = result * base
        Yield result
    Next
End Function

다음 예제는 Get 되는 반복기 접근자입니다.Iterator 한정자는 속성 선언에서입니다.

Sub Main()
    Dim theGalaxies As New Galaxies
    For Each theGalaxy In theGalaxies.NextGalaxy
        With theGalaxy
            Console.WriteLine(.Name & "  " & .MegaLightYears)
        End With
    Next
    Console.ReadKey()
End Sub

Public Class Galaxies
    Public ReadOnly Iterator Property NextGalaxy _
    As System.Collections.Generic.IEnumerable(Of Galaxy)
        Get
            Yield New Galaxy With {.Name = "Tadpole", .MegaLightYears = 400}
            Yield New Galaxy With {.Name = "Pinwheel", .MegaLightYears = 25}
            Yield New Galaxy With {.Name = "Milky Way", .MegaLightYears = 0}
            Yield New Galaxy With {.Name = "Andromeda", .MegaLightYears = 3}
        End Get
    End Property
End Class

Public Class Galaxy
    Public Property Name As String
    Public Property MegaLightYears As Integer
End Class

다른 예제를 보려면 반복기(C# 및 Visual Basic)를 참조하십시오.

참고 항목

참조

Yield 문(Visual Basic)

IteratorStateMachineAttribute

기타 리소스

반복기(C# 및 Visual Basic)