我正试图在周末学习一些C#,并遵循这里发现的15个练习:http://www.jobsnake.com/seek/articles/index.cgi ? openarticle&8533
昨天我问了一个关于Fibonacci序列的类似问题并得到了一些很好的响应,这些响应向我介绍了我之前没有遇到过的C#元素: 重构Fibonacci算法
今天我想看看C#Jedi如何重构以下代码:
static string Reynolds(int d, int v, int rho, int mu)
{
int number = (d*v*rho) / mu;
if (number < 2100) return "Laminar Flow";
else if (number < 2100 && number < 4000) return "Transient Flow";
else return "Turbulent Flow";
}
Run Code Online (Sandbox Code Playgroud)
比昨天更简单,但有没有什么好方法来处理多个条件?
问候,
克里斯
我认为您的代码中存在错误,但我做了一个假设.你的第二个"如果"永远不会评估树,因为数字<2000已经使第一个分支成立.
我会创建一个ENUM:
enum FlowType
{
Laminar
, Transient
, Turbulent
};
static FlowType Reynolds(int d, int v, int rho, int mu)
{
int n = (d*v*rho) / mu;
if(n < 2000)
{
return FlowType.Laminar;
}
else if(n < 4000)
{
return FlowType.Transient;
}
else
{
return FlowType.Turbulent;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
621 次 |
| 最近记录: |