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

如何在C#中将任意int转换为任意泛型Enum?

枚举与int的双向转换问题

背景与正向转换可行方案

Enum并不强制要求是int类型,比如可以定义成如下形式:

public enum ExampleEnum : int / ulong / whatever

因此不能直接用强制转换的方式将枚举转成int:

int i = (int)exampleEnum;

但在我的场景中,虽然不确定具体使用的枚举类型,但能保证它是基于int类型的枚举,所以可以通过以下方式完成正向转换:

int i = Convert.ToInt32(exampleEnum);

逆向转换的问题

现在需要实现逆向转换(将int转回Enum),尝试编写如下代码时:

Enum exampleEnum = (Enum)exampleInt;

会触发错误提示:

无法将int类型的表达式转换为Enum类型

同时也找不到与Convert.ToInt32(Enum)对应的逆向转换方法。

场景补充

我正在编写一个支持任意Enum类型的通用GUI方法:

public static int EditorPrefEnumField(string label, Enum defaultValue, string editorPrefString)

必须实现Enum与int之间的双向转换才能完成预期功能。


内容的提问来源于stack exchange,提问作者danglingPointer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:30:59