如何在.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;
}
}
答案 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
代码更清晰,则使用它。