在枚举中使用 DateTime 对象
我有这个枚举:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 C# 中,
enum
的默认基础类型是int
,遗憾的是仅支持基本数据类型,例如int
、short< /code>、
uint
等等。因此,在 .NET 中不可能将DateTimes
存储在enum
中。当然,您可以创建一个具有静态属性的静态类,该静态属性公开您需要的
DateTimes
,而不是像这样将其设置为enum
:并像这样使用它:
In C#, the default underlying type for an
enum
isint
, and unfortunately is only support basic data types likeint
,short
,uint
and so on. Therefore, storing theDateTimes
inside anenum
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 anenum
like this:And use it like this:
除了奥伊文德的回答。枚举值必须是常量值而不是变量。
In addition to Oyvind's answer. Enums Values have to be constant values and not variables.
为此,您应该使用类,而不是枚举。
You should use a class, not an enum for this.