是否可以反转对象或将其标记为负面?
这是我想要实现的效果:
DateTime.Now.Add(-TimeUnits.Week)
这应该返回当前日期时间减去7天。
因此,我必须在Add
方法中检测传递的对象是否为负数!
我看过一个Struct
,但是我的经验太少了,无法确定这是否可能!目前,我有一个枚举,当然非常有限。 我不特别限制于枚举,因此可以是任何其他对象!
我的枚举TimeUnits
:
public enum TimeUnits
{
Once = 0,
Day = 1,
Week = 2,
Month = 3,
Quarter = 4,
Year = 5
}
我有一个针对 DateTime
的扩展方法,我想要像这样向 Add
方法传递一个对象:
private static DateTime? Add(this DateTime current, TimeUnits unitOfTime)
{
switch (unitOfTime)
{
case TimeUnits.Once:
return null;
case TimeUnits.Day:
return current.AddDays(1);
case TimeUnits.Week:
return current.AddDays(7);
case TimeUnits.Month:
return current.AddMonths(1);
case TimeUnits.Quarter:
return current.AddMonths(3);
case TimeUnits.Year:
return current.AddYears(1);
default:
throw new ArgumentOutOfRangeException("unitOfTime");
}
}