Show/Hide Toolbars

XSharp

用途

在语句中使用 yield 关键字时,表示出现该关键字的方法、运算符或获取访问器是一个迭代器。
 

语法

YIELD RETURN <expression>
YIELD (EXIT|BREAK)

参数

YIELD RETURN您可以使用 YIELD RETURN <表达式> 一次返回一个元素。

 

YIELD [BREAK|EXIT]您可以使用 YIELD BREAK 或 YIELD EXIT 来结束迭代。

示例

using System.Collections.Generic
 
// 通过 Yield return 语句,您可以创建返回值集合的代码,而无需先在内存中创建集合。
// 编译器创建的代码会 “记住” 您在循环中的位置,并返回到该位置。
FUNCTION Start AS VOID
  FOREACH nYear AS INT IN GetAllLeapYears(1896, 2040)
     ? "年", nYear, "是闰年。"
  NEXT
  Console.ReadLine()
RETURN
 
FUNCTION GetAllLeapYears(nMin AS INT, nMax AS INT) AS IEnumerable<INT>
  FOR LOCAL nYear := nMin AS INT UPTO nMax
    IF nYear % 4 == 0 .and. (nYear % 100 != 0 .or. nYear % 400 == 0)
        YIELD RETURN nYear
    END IF
    IF nYear == 2012
        YIELD EXIT     // 跳出循环
    ENDIF
  NEXT