Iterace (Visual Basic)
Určuje, že funkce nebo Get přístupový objekt je iterace.
Poznámky
Iterační provede vlastní iterace v kolekci.Iterace používá výnos příkaz vrátit každý prvek v jedné kolekci najednou.Když Yield prohlášení je dosaženo, je zachovány aktuální umístění v kódu.Spuštění je restartován z tohoto umístění při příštím volání funkce iterační.
Iterace lze implementovat jako funkce nebo Get přístupový objekt vlastnosti definice.Iterator Modifikátor se zobrazí v deklaraci funkce iterační nebo Get přístupový objekt.
Iterace volat z kódu klienta pomocí Pro každý...Další příkaz (Visual Basic).
Návratový typ funkce iterační nebo Get přístupový objekt může být IEnumerable, IEnumerable<T>, IEnumerator, nebo IEnumerator<T>.
Iterace nemůže obsahovat ani ByRef parametry.
Iterace nemůže dojít k události, konstruktor instance, statický konstruktor nebo statický objekt.
Iterace může být anonymní funkce.Další informace naleznete v tématu U iterátorů (C# a Visual Basic).
Další informace o u iterátorů viz U iterátorů (C# a Visual Basic).
Použití
Iterator Modifikátor lze v těchto kontextech:
Příklad
Příklad funkce iterační aplikace.Iterační funkce má Yield příkaz, který je uvnitř pro…Další smyčky.Každém opakování pro každou prohlášení subjektu v Main vytvoří volání Power iterační funkce.Každé volání funkce iterační pokračuje další provádění Yield prohlášení během další opakování For…Next smyčky.
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
Následující příklad ukazuje Get přístupový objekt, který je iterace.Iterator Je modifikátor deklarace vlastnosti.
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
Další příklady naleznete v tématu U iterátorů (C# a Visual Basic).