base class · System
Iterator<T>
public base class Iterator<T>
The values of a function with yield, made one at a time: each Next() runs the function on to its next
yield. loop (T x in F()) walks them. An iterator runs once (call the function again to start over).
- Tipo
- base class
- Espacio de nombres
- System
- Ensamblado
- System.Core
- Acceso
- public, abstract
- Archivo fuente
Iterator.ant
Parámetros de tipo
| Nombre | Restricciones |
|---|---|
T | cualquier tipo |
Herencia
- Clases base
-
AnyIterator<T>
Propiedades
T Current { get; }
#
The value Next() moved to.
Métodos
Runs on to the next value: false when the function has ended (and from then on).
Dispose()
#
Ends the iterator before its last value: the finally blocks around the yield it paused at run (as they
do when it ends on its own), and Next() gives false from then on. Nothing happens to one that has ended.
Itself: loop (T x in iterator) walks what is left of it.
Campos
T current
#
The value the last yield gave.
Set by Dispose(): the next step runs the finally blocks around the last yield and ends.
Miembros heredados (5)
GetTypemétodo de AnyUndescribedmétodo de AnyToStringmétodo de AnyHashmétodo de Anydestroymétodo de Any
Código fuente
Iterator<T> en Antril, descompilado a partir de su Larva HIR.
// System.Iterator — System.Core (decompiled from Larva HIR)
into namespace System
{
/// The values of a function with `yield`, made one at a time: each `Next()` runs the function on to its next
/// `yield`. `loop (T x in F())` walks them. An iterator runs once (call the function again to start over).
public base class Iterator<T>
{
inherited:
/// The value the last `yield` gave.
T current;
/// Set by `Dispose()`: the next step runs the `finally` blocks around the last `yield` and ends.
bool disposing;
public:
/// Runs on to the next value: false when the function has ended (and from then on).
Next() : bool;
/// Ends the iterator before its last value: the `finally` blocks around the `yield` it paused at run (as they
/// do when it ends on its own), and `Next()` gives false from then on. Nothing happens to one that has ended.
Dispose()
{
disposing = true;
Next();
}
/// Itself: `loop (T x in iterator)` walks what is left of it.
Iterator() : Iterator<T> => this;
/// The value `Next()` moved to.
T Current
{
get => current;
}
}
}