★搜Asp.net★(www.soAsp.net),为专业技术文档网站。
包括Asp.net开发技术文档·C#开发技术文档·Access/SQL Server数据库开发技术文档·VB.NET开发技术文档。
还包括·项目实战经验总结·开发经验技巧总结·项目开发心得。
迭代器

     迭代器是C#2.0中的新功能。迭代器是方法、get访问器或运算符,它使能够在结构中支持foreach迭代,而不必实现整个IEnumerable接口。只须提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,它将自动生成IEnumerableIEnumerable接口的CurrentMoveNextDispose方法。创建了迭代器后就可以使用foreach对类进行遍历如:

static void Main()
{
    ListClass lc = new ListClass();
 
    foreach (int i in lc)
    {
        System.Console.WriteLine(i);
    }
}
创建迭代器最常用的方法是对
IEnumerable接口实现GetEnumerator方法,例如:

public System.Collections.IEnumerator GetEnumerator()
{
    for (int j = 0;j < max; j++)
    {
        yield returnj;
    }
}
  
示例     迭代器的实现和使用

下面的示例代码演示了类Year实现迭代器和怎样使用。

 

public class Year : System.Collections.Ienumerable//实现迭代器的类
{
    string[] season = { "Spring", "Summer", "Autumn", "Winter" };
 
    public System.Collections.IEnumerator GetEnumerator()
    {
        for (int i = 0; i < season.Length; i++)
        {
            yield return season [i];
        }
    }
}
 
class TestClass//使用实现迭代器的类
{
    static void Main()
    {
        Year y= new Year ();
 
        // 使用迭代器
        foreach (string s in y)
        {
            System.Console.Write(s + " ");
        }
    }
}
输出结果:

Spring Summer Autumn Winter

无标题页

无标题页
网站主页 | 广告业务 | 责任声明 | 联系我们 | 关于本站
2008 soAsp.net 使用前必读 京ICP备08009904号
本站为公益性网站,提供开发技术参考文章,不代表本站观点,不保证文章正确性。