C 迭代器和列舉器01

2021-09-25 05:49:27 字數 1114 閱讀 6470

1 ienumerable 提供可列舉的能力,只有實現該介面才可以使用foreach物件迭代物件

其介面包含的方法

ienumerator getenumerator()

該介面中包含實現迭代提供的值序列或者自定義值序列,然後對其進行迭代

public class test

}public class testienumerable

}

該方法體中也可以使用yield建立乙個迭代器然後返回

public class testienumerable:ienumerable

}

直接返回乙個自定義的迭代器類

public class testienumerable:ienumerable

}public testienumerator:ienumerator

......

}

2 ienumerator 提供可以迭代的值序列,供列舉器使用

包含普通介面ienumerator和泛型介面ienumerator

其介面方法包含

bool movenext() //這裡的movenext可以自定義返回滿足的條件true

object current

void reset()

比較經典的用法

public class helloienumerator : ienumerator, ienumerator

object ienumerator.current

}string ienumerator.current

}public void dispose()

public bool movenext()

return false;

}public void reset()

}

public class gamemove

public ienumerator cross()

}public ienumerator circle()

}}

C 列舉器和迭代器

using system using system.collections namespace study public class people ienumerable 宣告可列舉類 ienumerator ienumerable.getenumerator 實現ienumerable的geten...

C 迭代器,列舉器

測試 using system using system.collections.generic using system.linq using system.text using system.collections namespace 07迭代器 private int move 0 const...

C 學習之用迭代器實現列舉器

已經知道 主要乙個類實現了getenumerator函式就能foreach,而實現ienumerator介面只是實現 getenumerator函式的其中乙個辦法,也就說還有其他辦法實現getenumerator函式了?是的,c 2.0為我們提供了一種很簡單的方 法來實現getenumerator函...