我有这个枚举代码:
enum Duration { Day, Week, Month };
我可以为此枚举添加扩展方法吗?
根据这个site http://damieng.com/blog/2012/10/29/8-things-you-probably-didnt-know-about-csharp:
扩展方法提供了一种为现有类编写方法的方法,而团队中的其他人可能会实际发现和使用这种方法。鉴于枚举与其他任何类一样,您可以扩展它们应该不会太令人惊讶,例如:
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 处理并将它们抽象一点,直到您可以做得更好。请记住检查这些值是否也在范围内。
您可以阅读更多内容here http://msdn.microsoft.com/en-us/library/bb383974.aspx在微软MSDN。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)