【发布时间】:2013-11-04 00:50:35
【问题描述】:
以这个枚举为例:
public enum PersonName : short
{
Mike = 1,
Robert= 2
}
我希望有这样的扩展方法:
PersonName person = PersonName.Robert; short personId = person.GetId(); //Instead of: short personId = (short)person;
知道如何实现吗?
它需要对 int、short 等通用,并且对通用枚举也是通用的,不限于 PersonName。
【问题讨论】:
-
这是不可能的。 (您不能包含基于
enum的基础类型的方法) -
为什么需要扩展方法来执行此操作?转换到底层类型已经像
(int) SomeEnum.SomeValue一样简单