C# .NET 4.0针对收益率的重构
如何在.NET4.0中重构收益率C# .NET 4.0针对收益率的重构,c#,C#,如何在.NET4.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++)
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;
}
}
publicstaticvoiddoit()
{
foreach(整数n的幂(2,4))
{
控制台写入(n);
}
}
公共静态IEnumerable CalcPower(整数基,整数指数)
{
int res=1;
对于(int c=1;c您的方法很好。这可能也是我实现它的方式。一个变化是您应该使用泛型IEnumerable
而不是IEnumerable
public static IEnumerable<int> Power(int baseNumber, int highExponent)
公共静态IEnumerable幂(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));
}
公共静态IEnumerable幂(int baseNumber,int highExponent)
{
返回可枚举的范围(1,高指数)
.Select(e=>(int)Math.Pow(baseNumber,e));
}
yield
关键字尚未过时。如果代码更清晰,请使用yield
。你的意思是什么?你的代码有什么问题?它编译了吗?它给出了正确的结果吗?你想删除yield return
并用其他东西替换它吗?我想更改公共静态IE可数幂
到公共静态IEnumerable幂
为什么要使用任务?