欢迎各界计算机爱好者加入,弘扬极客精神!

C#中的迭代器是作什么用的?

1 喜欢 0 不喜欢
如题
最新提问 9月 5, 2016 分类:C# | 用户: wxwxwx (814 分)  

5 个回答

1 喜欢 0 不喜欢
 
已采纳
你需要理解什么是数组Array,什么是集合IConnection,什么是IList开始.
举个简单例子:
数组如 string ar=new string[]{"a","b","c"}
这是一个简单字符串数组。

假设我需要提取数组中的每一个元素,我该怎么办呢? 
所以那些天才们就想出一种方案,用C#语法表达是:
forech(string item in ar)
{
  MessageBox.Show(item);
}

然后你可以把forech(string item in ar)这种语法理解为迭代器.
最新回答 9月 5, 2016 用户: 多肉肉肉 (3,456 分)  
采纳于 9月 5, 2016 用户:wxwxwx
0 喜欢 0 不喜欢
1.迭代器是可以返回相同类型值的有序序列的一段代码; 
  2.迭代器可用作方法、运算符或get访问器的代码体; 
  3.迭代器代码使用yield return语句依次返回每个元素,yield break将终止迭代; 
  4.可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端代码调用; 
  5.迭代器的返回类型必须为IEnumerable和IEnumerator中的任意一种;
  6.迭代器是产生值的有序序列的一个语句块,不同于有一个 或多个yield语句存在的常规语句块; 
  7.迭代器不是一种成员,它只是实现函数成员的方式,理解这一点是很重要的,一个通过迭代器实现的成员,可以被其他可能或不可能通过迭代器实现的成员覆盖和重载; 
  8.迭代器块在C#语法中不是独特的元素,它们在几个方面受到限制,并且主要作用在函数成员声明的语义上,它们在语法上只是语句块而已;
最新回答 9月 5, 2016 用户: xrrrrr (5,464 分)  
0 喜欢 0 不喜欢
迭代器模式使得你能够获取到序列中的所有元素而不用关心他的类型,这一点使得能够非常高效的构建数据处理通道。
最新回答 9月 5, 2016 用户: die when I am 27 (4,106 分)  
0 喜欢 0 不喜欢
迭代器应该可以读取集合或者数组中的一个值,读完后又指向下一条数据

迭代器修改了常规指针的接口,是一种抽象的概念
最新回答 9月 5, 2016 用户: xyxx (4,522 分)  
...