C# 面试题 目录

C# 中 yield 关键字的用法

推荐答案

本题详细解读

1. yield 关键字的作用

yield 关键字用于在迭代器方法中逐个返回元素,而不需要一次性生成所有元素。它允许你在方法中暂停执行,并在需要时继续执行。yield return 用于返回一个元素,而 yield break 用于终止迭代。

2. 迭代器方法

迭代器方法是一种返回 IEnumerableIEnumerator 的方法。使用 yield 关键字的迭代器方法会在每次调用 MoveNext 时执行到下一个 yield return 语句,并返回相应的值。

3. 示例代码解析

  • GenerateNumbers 方法是一个迭代器方法,返回 IEnumerable<int>
  • for 循环中,每次迭代都会执行 yield return i,返回当前的 i 值。
  • 调用 GenerateNumbers 方法时,并不会立即执行整个循环,而是在每次迭代时返回一个值。

4. 使用示例

  • 上述代码会输出 04,每次迭代时 GenerateNumbers 方法会返回下一个值。

5. 注意事项

  • yield 关键字只能在返回 IEnumerableIEnumerator 的方法中使用。
  • 迭代器方法的状态会在每次 yield return 时保存,并在下次调用时恢复。
  • yield break 可以用于提前终止迭代。
纠错
反馈