C#重构这段乱七八糟的代码!

标签 c# refactoring

我主要是为时间表页面 (ASP.NET MVC) 创建一个平面 View 模型,该页面有一个星期几的网格。 WorkTime 属性应该是数据库中现有的 WorkTime,如果不存在则为 null。

只会显示 1 周(周六至周五)。并且我在那里有单独的属性,因此我认为语法应该更简单。

+------+-----+-----+-----+-----+-----+-----+-----+
| Desc | Sat | Sun | Mon | Tue | Wed | Thu | Fri |
+------+-----+-----+-----+-----+-----+-----+-----+
|______|_____|_____|_____|_____|_____|_____|_____|
|______|_____|_____|_____|_____|_____|_____|_____|
|______|_____|_____|_____|_____|_____|_____|_____|
|______|_____|_____|_____|_____|_____|_____|_____|

所有来自数据库并持久保存到数据库的日期都没有时间元素(所有午夜时间)并且周六到周五的 DateTime 属性都已设置。

我正在设置的属性

public WorkTime SaturdayWorkTime { get; private set; }
public WorkTime SundayWorkTime { get; private set; }
public WorkTime MondayWorkTime { get; private set; }
public WorkTime TuesdayWorkTime { get; private set; }
public WorkTime WednesdayWorkTime { get; private set; }
public WorkTime ThursdayWorkTime { get; private set; }
public WorkTime FridayWorkTime { get; private set; }

当前迭代...

public DateTime Saturday { get; private set; }
public DateTime Sunday { get; private set; }
public DateTime Monday { get; private set; }
public DateTime Tuesday { get; private set; }
public DateTime Wednesday { get; private set; }
public DateTime Thursday { get; private set; }
public DateTime Friday { get; private set; }

_workTimes = _workTimeRepository.GetByWorkAssignmentID(WorkAssignment.ID, Saturday, Friday);
SaturdayWorkTime = GetWorkTimeForDay(DayOfWeek.Saturday);
SundayWorkTime = GetWorkTimeForDay(DayOfWeek.Sunday);
MondayWorkTime = GetWorkTimeForDay(DayOfWeek.Monday);
TuesdayWorkTime = GetWorkTimeForDay(DayOfWeek.Tuesday);
WednesdayWorkTime = GetWorkTimeForDay(DayOfWeek.Wednesday);
ThursdayWorkTime = GetWorkTimeForDay(DayOfWeek.Thursday);
FridayWorkTime = GetWorkTimeForDay(DayOfWeek.Friday);

使用这个辅助方法...

private WorkTime GetWorkTimeForDay(DayOfWeek dow)
{
    return _workTimes.FirstOrDefault(x => x.Date.DayOfWeek == dow);
}

最佳答案

这是一个小的开始:

private WorkTime GetWorkTimeForDay(DayOfWeek dw)
{
    return workTimes.FirstOrDefault(x => x.Date.DayOfWeek == dw);
}

关于C#重构这段乱七八糟的代码!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1235719/

相关文章:

c++ - 应用程序级集合的适当架构

c# - MailKit C# ImapClient.Connect() 到 Office 365 生成异常 : "The remote certificate is invalid according to the validation procedure"

c# - 如何在网络浏览器控件内重新加载网页?

c# - .NET Core 2.0 中 PropertyInfo.IsPublic 的等价物

ruby - 如何重构这段查找 Unix 时间结束的代码?

go - 按类型划分的功能?怎么重构呢?

java - 正则表达式排除引号内的匹配项

c# - 有没有办法使用 LINQ 从 List<T> 中删除某些元素?

c# - 创建笛卡尔坐标系 C# Windows 窗体绘图