0

如何在 .NET 4.0 中重构收益回报

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;
    }
}
4

1 回答 1

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使用它。

于 2012-11-01T08:35:21.327 回答