溫馨提示×

使用c# yield實現延遲執(zhí)行

c#
小樊
84
2024-07-17 23:37:43
欄目: 編程語言

在C#中,可以使用yield關鍵字來實現延遲執(zhí)行。通過yield關鍵字,可以實現按需生成序列的功能,而不需要一次性生成所有元素。

下面是一個簡單的示例,展示如何使用yield來實現延遲執(zhí)行:

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循環(huán)遍歷GetNumbers方法返回的序列,實現延遲執(zhí)行的效果。每次循環(huán)迭代時,都會調用GetNumbers方法來生成下一個數字。

通過使用yield關鍵字,可以實現簡單而有效的延遲執(zhí)行功能,適用于需要按需生成大量元素的情況。

0