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>1 つの変更点は、 の代わりにジェネリックを使用する必要があることです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 に答える