您将如何构建一个数据结构- 表示为下面的 Schedule 类 - 这将为您提供足够的信息,以便为您的 ExtensionMethod 提供简单且足够的信息,以便它可以设置 testResult_# 变量。
请注意:我不是在问如何实现 GetScheduleById(string) 方法,而是要求通过向该方法提供所有需要的信息来尽可能简单地定义 Schedule 数据结构。
var datetimeUnderTest = DateTime.Now;
Schedule workingDaysSchedule = ScheduleRepository.GetScheduleById("dubaiWorkingDays");
Schedule workingHoursSchedule = ScheduleRepository.GetScheduleById("usaWorkingHours");
Schedule winterSchedule = ScheduleRepository.GetScheduleById("brasilWinter");
Schedule nightsInWeekendSchedule = ScheduleRepository.GetScheduleById("NightsInWeekends");
Schedule nightsInWeekDaysSchedule = ScheduleRepository.GetScheduleById("NightsInWeekDays");
// IsInSchedule is an Extension method on DateTime
bool testResult_0 = datetimeUnderTest.IsInSchedule(workingDaysSchedule );
bool testResult_1= datetimeUnderTest.IsInSchedule(workingHoursSchedule );
bool testResult_2 = datetimeUnderTest.IsInSchedule(winterSchedule);
bool testResult_3 = datetimeUnderTest.IsInSchedule(nightsInWeekendSchedule );
bool testResult_4 = datetimeUnderTest.IsInSchedule(nightsInWeekDaysSchedule );
谢谢!