gpt4 book ai didi

c# - 如何从 System.Enum 转换为基本整数?

转载 作者:IT王子 更新时间:2023-10-29 03:37:28 24 4
gpt4 key购买 nike

我想创建一个通用方法,用于将任何 System.Enum 派生类型转换为其相应的整数值,无需强制转换,最好不解析字符串。

例如,我想要的是这样的:

// Trivial example, not actually what I'm doing.
class Converter
{
int ToInteger(System.Enum anEnum)
{
(int)anEnum;
}
}

但这似乎不起作用。 Resharper 报告您无法将类型为“System.Enum”的表达式转换为类型“int”。

现在我想出了这个解决方案,但我宁愿有更高效的东西。

class Converter
{
int ToInteger(System.Enum anEnum)
{
return int.Parse(anEnum.ToString("d"));
}
}

有什么建议吗?

最佳答案

如果你不想投,

Convert.ToInt32()

可以做到这一点。

直接转换(通过 (int)enumValue)是不可能的。请注意,这也是“危险的”,因为枚举可以具有不同的基础类型(intlongbyte...)。

更正式地说:System.EnumInt32 没有直接的继承关系(尽管两者都是ValueType),因此显式转换不能在类型系统中是正确的

关于c# - 如何从 System.Enum 转换为基本整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/908543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com