可枚举类型是带有GetEnumerator方法的类型,GetEnumerator方法返回用于项的枚举器。枚举器实现了IEnumerator接口,它包含三个函数成员:MoveNext,初始位置在第一项之前,返回bool值;Current只读,返回object类型的引用,可以返回任何对象;Reset把位置置为初始状态。
模拟foreach
int[] arr = { 1, 2, 3, 4 };
IEnumerator enumetor = arr.GetEnumerator();
while(enumetor.MoveNext())
{
int n = (int)enumetor.Current;
Console.WriteLine($"枚举器:{n}");
}