我正试图在周末学习一些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"; }
比昨天更简单,但有没有什么好方法来处理多个条件?
问候,
克里斯
我认为您的代码中存在错误,但我做了一个假设.你的第二个"如果"永远不会评估树,因为数字<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; } }