如何从System.Enum基类变量获取枚举的int值?
如何从System.Enum类型参数获取其int值?
我知道如果是实际的Enum派生类实例,直接强制转换为int就能拿到对应值,但这种方法对System.Enum类型的参数无效。想请教以下GetEnumValue函数的正确实现是什么?
示例代码如下:
public enum Order { First, Second, Third } // 返回传入枚举的int表示。 //(例如,传入Order.First应返回1,传入Order.Second应返回2等) // 需支持其他任意枚举。 public int GetEnumValue(Enum enumInstance) { ??? }
注:为简化问题,目前暂时忽略枚举底层类型可能不是int的情况,但后续也需要处理该场景,当前核心问题是无法从Enum参数中获取值。
解决方案
使用Convert.ToInt32方法即可实现,函数体如下:
return Convert.ToInt32(enumInstance);
说明
需要注意的是,这并非常见的“从C#枚举获取int值”问题的重复,关键区别在于本文针对的是System.Enum类型的变量,而非具体的Enum派生类实例,常规的强制转int方法在此场景下不生效。
内容的提问来源于stack exchange,提问作者Curtis
相关产品推荐
相关产品推荐

