马上注册,下载丰富资料,享用更多功能,让你轻松玩转阳光石油论坛。
您需要 登录 才可以下载或查看,没有账号?欢迎注册
x
迭代器可用于遍历列表和数组之类的集合。 迭代器方法或 get 访问器对集合的自定义迭代。 迭代器方法使用 Yield (Visual Basic) 或 将返回 (c#) 语句依次返回每个元素。 当 Yield 或yield return 语句时,代码的当前位置确保。 在下一次迭代器函数时,执行从该位置进行重新启动。 您使用来自客户端代码中的迭代器使用 对于每个 for each…next (Visual Basic) 或 foreach (c#) 使用 LINQ 查询,语句或。 在下面的示例中,For Each 或 foreach 循环的第一个迭代在直到第一 Yield 的 SomeNumbers 迭代器方法会导致执行或 yield return 语句为止。此迭代返回值为 3,以及迭代方法的当前位置保留。在循环的下一个迭代,在迭代器方法的执行从延续它将会停止,再次停止的位置,并在到达 Yield 或 yield return 语句时。此迭代返回值为 5,以及迭代方法的当前位置再次保存。在迭代器方法结束时,循环完成。 static void Main(){ foreach (int number in SomeNumbers()) { Console.Write(number.ToString() + " "); } // Output: 3 5 8 Console.ReadKey();}public static System.Collections.IEnumerable SomeNumbers(){ yield return 3; yield return 5; yield return 8;}那么这个迭代器方法
静态的IEnumerable 接口类,他指包含一个GetEnumerator()方法,方法SomNumbers也就是说,返回的是yield return3是一个接口类。
foreach(int number in SomeNumbers){console.writeline(number.ToString()+" ");}
//output:3 5 8console.readkey();
[size=12.800000190734863px]An iterator can be used to step through collections such as lists and arrays. [size=12.800000190734863px]An iterator method or get accessor performs a custom iteration over a collection.An iterator method uses the Yield (Visual Basic) oryield return (C#) statement to return each element one at a time.When a Yield or yield return statement is reached, the current location in code is remembered.Execution is restarted from that location the next time the iterator function is called. [size=12.800000190734863px]
[size=12.800000190734863px]一个迭代器方法执行集合内的自定义迭代 [size=12.800000190734863px]一个迭代器方法使用Yield或yield return语句一次返回一个元素 [size=12.800000190734863px]迭代器可以被用来在集合内步进,如lists和arrays,譬如list和数组 [size=12.800000190734863px]Yield或yield return语句被打倒,当前位置被记录。 [size=12.800000190734863px]public override IEnumerable<ModuleReference> Modules
{
get
{
// Please fill this method with your modules with lines like this:
//yield return new ModuleReference(typeof(Module));
yield return new ModuleReference(typeof(HelloModule));
yield return new ModuleReference(typeof(HelloModule2));
}
} [size=12.800000190734863px]
[size=12.800000190734863px]我们看这个例子,返回类型是IEnumerable<ModuleReference>,其中包含get方法 yield return
|