【发布时间】:2019-06-13 06:58:55
【问题描述】:
我有一个 dto 如下:
public class DaysDetails
{
public bool Sun {get;set;}
public bool Mon {get;set;}
...
public bool Sat {get;set;} //All 7 days of the week
}
我有一个方法可以检查是否检查了日期并构建逗号分隔的字符串格式。例如:如果检查了星期日和星期一,则输出为“0,1”(对应于天的数字)
pubic string ConstructDays(DaysDetails d)
{
StringBuilder constructDays = new StringBuilder();
if(d.Sun == true)
{
constructDays.Append("0");
}
if(d.Mon == true)
{
constructDays.Append("1");
}
..... //So on for all seven days
string day = Convert.toString(constructDays);
if(day != string.Empty && day[0] == ",")
day = day.Remove(0,1);
return day;
}
我需要将此函数转换为更易于维护的代码和简化版本。这有什么可以改进的?
【问题讨论】:
-
首先,您可以更改 DaysDetails 吗?我的意思是,为什么不使用带有标志的枚举?
-
您可以使用列表而不是 CSV 字段
-
@anu:DayDetails 是我从 UI 映射字段中得到的。但是,是的,我可以使用从 DayDetails 派生的任何其他变量,并且可以将其传递给 ConstructDays 函数。最终,我需要一个逗号分隔的字符串,来自 DayDetails 或传递给函数的任何自定义变量。
-
我投票结束这个问题,因为它要求代码审查尝试Code Review