在枚举中使用 DateTime 对象

发布于 2024-10-12 17:26:09 字数 289 浏览 2 评论 0原文

我有这个枚举:

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

但无法做到

(DateTime)timePeriod

如何获取给定枚举的日期?

I have this enum:

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

but cant do

(DateTime)timePeriod

how can i get the date given an enum?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

陌生 2024-10-19 17:26:09

在 C# 中,enum 的默认基础类型是 int,遗憾的是仅支持基本数据类型,例如 intshort< /code>、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;}},
}

并像这样使用它:

myDateTime = TimePeriod.Month;

In C#, the default underlying type for an enum is int, and unfortunately is only support basic data types like int, short, uint and so on. Therefore, storing the DateTimes inside an enum is not possible in .NET.

You can of course make a static class with static properties that expose the DateTimes you need instead of making it like an enum like this:

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;}},
}

And use it like this:

myDateTime = TimePeriod.Month;
懵少女 2024-10-19 17:26:09

除了奥伊文德的回答。枚举值必须是常量值而不是变量。

In addition to Oyvind's answer. Enums Values have to be constant values and not variables.

止于盛夏 2024-10-19 17:26:09

为此,您应该使用类,而不是枚举。

You should use a class, not an enum for this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文