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).