在枚举中使用DateTime对象

rak*_*los 1 c# enums

我有这个枚举:

public enum TimePeriod
{
    Day = DateTime.Now.AddDays(-1),
    Week = DateTime.Now.AddDays(-7),
    Month = DateTime.Now.AddMonths(-1),
    AllTime = DateTime.Now
}
Run Code Online (Sandbox Code Playgroud)

但是不能这样做

(DateTime)timePeriod
Run Code Online (Sandbox Code Playgroud)

如何获得枚举日期?

Øyv*_*hen 8

在C#,默认的基本类型为enumint,不幸的是仅支持基本的数据类型,例如int,short,uint等.因此,在.NET中无法存储DateTimes内部enum.

你当然可以使用静态属性创建一个静态类,它可以显示DateTimes你需要的东西而不是enum像这样:

public static class TimePeriod
{
  public static DateTime Day{ get{return DateTime.Now.AddDays(-1);}},
  public static DateTime Week{ get{return DateTime.Now.AddDays(-7);}},
  public static DateTime Month{ get{return DateTime.Now.AddMonths(-1);}},
  public static DateTime AllTime{ get{return DateTime.Now;}},
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

myDateTime = TimePeriod.Month;
Run Code Online (Sandbox Code Playgroud)