我有这个枚举代码:

enum Duration { Day, Week, Month };

我可以为此 Enum 添加扩展方法吗?

最佳答案

根据这个 site :

扩展方法提供了一种以团队中其他人可能会实际发现和使用的方式为现有类编写方法的方法。鉴于枚举和其他任何类一样,您可以扩展它们也就不足为奇了,例如:

enum Duration { Day, Week, Month };

static class DurationExtensions
{
  public static DateTime From(this Duration duration, DateTime dateTime)
  {
    switch (duration)
    {
      case Day:   return dateTime.AddDays(1);
      case Week:  return dateTime.AddDays(7);
      case Month: return dateTime.AddMonths(1);
      default:    throw new ArgumentOutOfRangeException("duration");
    }
  }
}

我认为枚举通常不是最好的选择,但至少这可以让你集中一些 switch/if 处理并将它们抽象一点,直到你可以做更好的事情。请记住检查值是否也在范围内。

您可以在 Microsft MSDN 上阅读更多 here

关于c# - 如何向枚举添加扩展方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15388072/

10-13 06:10