Yineleyici (Visual Basic)

Belirleyen bir işlev veya Get erişimci olduğundan bir yineleyici.

Notlar

Bir Yineleyici bir koleksiyon özel bir döngü gerçekleştirir.Bir yineleyici kullanan Ödeme koleksiyonunda bir anda her öğeye dönmek deyimi.Zaman bir Yield deyimi ulaşılırsa, kod geçerli konumda korunur.Yürütme Yineleyici işlevi adı verilen bir sonraki açışınızda bu konumdan yeniden başlatılır.

Bir yineleyici bir işlev olarak veya uygulanabilir bir Get erişimci özelliği tanımı.Iterator Değiştirici Yineleyici işlev bildiriminde görünür veya Get erişimci.

Bir yineleyici kullanarak istemci kodundan çağırma bir For Each...Next Deyimi (Visual Basic).

Bir yineleyici işlevinin dönüş türü veya Get erişimci olabilir IEnumerable, IEnumerable, IEnumerator, veya IEnumerator.

Herhangi bir yineleyici olamaz ByRef parametreleri.

Bir yineleyici bir olay, örnek oluşturucu, statik oluşturucu veya yıkıcı statik olamaz.

Bir Yineleyici, adsız bir işlev olabilir.Daha fazla bilgi için bkz. Yineleyiciler (C# ve Visual Basic).

Yineleyicilerde hakkında daha fazla bilgi için bkz: Yineleyiciler (C# ve Visual Basic).

Kullanım

Iterator Değiştirici bu içerikte kullanılabilir:

Örnek

Yineleyici fonksiyonunu aşağıdaki örnekte gösterilmiştir.Yineleyici işlevine sahip bir Yield deyimi içinde olan bir For…Sonraki döngü.Her tekrarında için deyimi gövdesine Main bir çağrı oluşturur Power Yineleyici işlevi.Her Yineleyici işlevine çağrı ilerler İleri yürütülmesi Yield bir sonraki yineleme sırasında ortaya çıkan ifade For…Next döngü.

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

Aşağıdaki örnekte gösterilmiştir bir Get olan bir yineleyici erişeni.Iterator Özellik bildiriminde değiştiricidir.

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

Ek örnekler için bkz. Yineleyiciler (C# ve Visual Basic).

Ayrıca bkz.

Başvuru

Yield Deyimi (Visual Basic)

IteratorStateMachineAttribute

Diğer Kaynaklar

Yineleyiciler (C# ve Visual Basic)