【发布时间】:2019-01-30 15:33:41
【问题描述】:
这段代码看起来不干净,如果条件可以增长
public int VisitMonth(int months)
{
int visit = 0;
if (months <= 1)
{
visit = 1;
}
else if (months <= 2)
{
visit = 2;
}
else if (months <= 4)
{
visit = 3;
}
else if (months <= 6)
{
visit = 4;
}
else if (months <= 9)
{
visit = 5;
}
else if (months <= 12)
{
visit = 6;
}
else if (months <= 15)
{
visit = 7;
}
else if (months <= 18)
{
visit = 8;
}
else if (months <= 24)
{
visit = 9;
}
else if (months <= 30)
{
visit = 10;
}
else if (months <= 36)
{
visit = 11;
}
else if (months <= 48)
{
visit = 12;
}
else if (months <= 60)
{
visit = 13;
}
else
{
visit = 14;
}
return visit;
}
有没有更好的办法解决这个问题?遗憾的是,该函数不是线性的,因此以数学方式对其进行编码并不容易。
【问题讨论】:
-
将所有内容放入关联数组中,并使用循环。这让你只需要一个
if声明。 -
在 C# 8 中,这可能是带有
when子句的 switch 表达式... -
澄清一下,这是计算全年访问次数还是一个月访问次数?
标签: c# oop design-patterns