迭代器概念
来源:互联网 发布:玩游戏防闪退软件 编辑:程序博客网 时间:2024/04/27 19:51
用最直观的说法,迭代就是指循环,迭代器是指实现该循环的一种方式,下面讲解什么叫迭代器:
迭代器是C# 2.0中的新功能,它是方法、get访问器或运算符,它使开发人员能够在类或结构中支持foreach迭代,而不必实现整个IEnumerable接口。只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,它将自动生成IEnumerable或IEnumerable接口的Current、MoveNext和Dispose方法。
迭代器有以下特点:
1、迭代器是可以返回相同类型值的有序序列的一段代码;
2、迭代器可用作方法、运算符或get访问器的代码体;
3、迭代器代码使用yield return语句依次返回每个元素,yield break将终止迭代;
4、可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端代码调用;
5、迭代器的返回类型必须为IEnumerable和IEnumerator中的任意一种;?迭代器是产生值的有序序列的一个语句块,不同于有一个 或多个yield语句存在的常规语句块;
6、迭代器不是一种成员,它只是实现函数成员的方式,理解这一点是很重要的,一个通过迭代器实现的成员,可以被其他可能或不可能通过迭代器实现的成员覆盖和重载;
7、迭代器块在C#语法中不是独特的元素,它们在几个方面受到限制,并且主要作用在函数成员声明的语义上,它们在语法上只是语句块而已。
运用(部分代码截取):
ArrayList list= S.selectStudentAndBook();
IEnumerator it = list.GetEnumerator();
while(it.MoveNext())
{
A = (Admins)it.Current;
it.MoveNext();
S = (Student)it.Current;
it.MoveNext();
Student S1 = (Student)it.Current;
Console.WriteLine("学生借书信息记录:\n 图书ID:{0} 图书名字:{1} 图书数量:{2} 学生姓名:{3}",A.BookId,A.Bookname,S.BookNumber,S1.Name);
}
这里有很多U3D资源、U3D培训视频、U3D常见问题、U3D项目源码我们可以一起交流学习
用最直观的说法,迭代就是指循环,迭代器是指实现该循环的一种方式,下面讲解什么叫迭代器: 迭代器是C# 2.0中的新功能,它是方法、get访问器或运算符,它使开发人员能够在类或结构中支持foreach迭代,而不必实现整个IEnumerable接口。只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,它将自动生成IEnumerable或IEnumerable接口的Current、MoveNext和Dispose方法。
迭代器有以下特点:
1、迭代器是可以返回相同类型值的有序序列的一段代码;
2、迭代器可用作方法、运算符或get访问器的代码体;
3、迭代器代码使用yield return语句依次返回每个元素,yield break将终止迭代;
4、可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端代码调用;
5、迭代器的返回类型必须为IEnumerable和IEnumerator中的任意一种;?迭代器是产生值的有序序列的一个语句块,不同于有一个 或多个yield语句存在的常规语句块;
6、迭代器不是一种成员,它只是实现函数成员的方式,理解这一点是很重要的,一个通过迭代器实现的成员,可以被其他可能或不可能通过迭代器实现的成员覆盖和重载;
7、迭代器块在C#语法中不是独特的元素,它们在几个方面受到限制,并且主要作用在函数成员声明的语义上,它们在语法上只是语句块而已。
运用(部分代码截取):
ArrayList list= S.selectStudentAndBook();
IEnumerator it = list.GetEnumerator();
while(it.MoveNext())
{
A = (Admins)it.Current;
it.MoveNext();
S = (Student)it.Current;
it.MoveNext();
Student S1 = (Student)it.Current;
Console.WriteLine("学生借书信息记录:\n 图书ID:{0} 图书名字:{1} 图书数量:{2} 学生姓名:{3}",A.BookId,A.Bookname,S.BookNumber,S1.Name);
}
这里有很多U3D资源、U3D培训视频、U3D常见问题、U3D项目源码我们可以一起交流学习
0 0
- 迭代器概念
- STL读书笔记--- 迭代器概念
- Python 迭代器的概念
- 概念
- 概念
- 概念
- 概念
- 概念
- 概念
- 概念
- 概念
- 概念
- 概念
- 概念
- 概念
- 概念
- 概念
- 概念
- C# 中值类型和引用类型的区别
- HDU 5155 Harry And Magic Box(组合+容斥)
- Jsp连接MSSQL数据库
- shell浅谈之八I/O重定向
- 网络爬虫技术浅析
- 迭代器概念
- Sencha Extjs的官网在线API
- shell浅谈之七文本处理工具grep、sed、awk
- 【转自oschina网站】Hadoop、Pig、Hive、Storm、NOSQL 学习资源收集
- 统计中的各种技巧
- C#序列化与反序列化
- 碰撞器和触发器更新
- Find n‘th number in a number system with only 3 and 4
- buildSessionFactory(ServiceRegistry sr)这个方法来获取SessionFactory