You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 07:57:17