.NET 4.0重构收益率

时间:2012-11-01 07:53:57

标签: c#

如何在.NET 4.0中重构yield return

public static void DoIt()
{
    foreach (int n in Power(2,4))
    {
        Console.Write(n);
    }
}


public static IEnumerable CalcPower(int base, int exponent)
{
    int res = 1;

    for (int c = 1; c <= high; counter++)
    {
        res = res * base;
        yield return result;
    }
}

1 个答案:

答案 0 :(得分:2)

你的方法很好。这可能就是我实施它的方式。一个变化是您应该使用通用IEnumerable<int>而不是IEnumerable

public static IEnumerable<int> Power(int baseNumber, int highExponent)

如果你真的想以另一种方式做,你可以使用LINQ,但在我看来,它并不像原始代码那样清晰:

public static IEnumerable<int> Power(int baseNumber, int highExponent)
{
    return Enumerable.Range(1, highExponent)
        .Select(e => (int)Math.Pow(baseNumber, e));
}

yield关键字尚未过时。如果yield代码更清晰,则使用它。