За даними цього сайту :
Методи розширення - це спосіб написати методи для існуючих класів таким чином, щоб інші люди у вашій команді могли насправді виявити та використовувати. Зважаючи на те, що перерахунки - це класи, як і будь-які інші, не повинно надто дивно, що ви можете продовжити їх, наприклад:
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");
}
}
}
Я думаю, що перерахунки взагалі не найкращий вибір, але, принаймні, це дозволяє вам централізувати деякі перемикачі / якщо керувати ними та трохи абстрагувати їх, поки ви не зможете зробити щось краще. Не забудьте перевірити, чи знаходяться також значення в діапазоні.
Детальніше ви можете прочитати тут на Microsft MSDN.