【发布时间】:2013-03-01 13:12:55
【问题描述】:
我有这个枚举代码:
enum Duration { Day, Week, Month };
我可以为这个 Enum 添加扩展方法吗?
【问题讨论】:
-
简短回答,是的。在这种特定情况下,您可能需要考虑使用
TimeSpan -
在枚举上使用扩展方法会让我觉得很脏。创建一个类来封装所需的内容。保持枚举尽可能简单。如果您需要更多与之关联的逻辑,则创建一个 Duration 类,该类公开日、周、月以及包含扩展方法中的任何其他逻辑。
-
我喜欢为标志组提供枚举扩展方法。我更喜欢 if 子句,例如
Day.IsWorkday()而不是(Day & Days.Workday) > 0,Days.Workday定义为Monday | Tuesday ... | Friday。在我看来,前者更清楚,而后者也完全实现了。