温馨提示×

使用c# yield实现延迟执行

c#
小樊
84
2024-07-17 23:37:43
栏目: 编程语言

在C#中,可以使用yield关键字来实现延迟执行。通过yield关键字,可以实现按需生成序列的功能,而不需要一次性生成所有元素。

下面是一个简单的示例,展示如何使用yield来实现延迟执行:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        foreach (var number in GetNumbers())
        {
            Console.WriteLine(number);
        }
    }

    static IEnumerable<int> GetNumbers()
    {
        for (int i = 1; i <= 5; i++)
        {
            Console.WriteLine($"Generating number: {i}");
            yield return i;
        }
    }
}

在上面的示例中,GetNumbers方法返回一个IEnumerable类型的序列。在该方法中,使用yield return关键字来逐个地生成数字1到5,并在控制台打印每个生成的数字。

在Main方法中,通过foreach循环遍历GetNumbers方法返回的序列,实现延迟执行的效果。每次循环迭代时,都会调用GetNumbers方法来生成下一个数字。

通过使用yield关键字,可以实现简单而有效的延迟执行功能,适用于需要按需生成大量元素的情况。

0