关于.net:C#,将变量转换为Enum.GetUnderlyingType

C#, cast variable to Enum.GetUnderlyingType

假设我有枚举,其基础类型是byte:

1
2
3
4
5
enum EmpType : byte
{
    Manager = 1,
    Worker = 2,
}

我可以将一些int文本转换为此枚举的基础类型(在本例中是byte)吗?

类似这样的事情不起作用(错误:";预期"):

1
byte x = (Enum.GetUnderlyingType(typeof(EmpType)))15;

我可以在不显式写入(字节)15的情况下强制转换为基础类型吗?

谢谢。


我想以下几点可以。但我不确定在任何情况下它都能让你获得想要的行为。

1
var x = Convert.ChangeType(15, Enum.GetUnderlyingType(typeof(EmpType)))


我不完全确定你想做什么。下面是一个有关将int转换为枚举的相关问题,反之亦然,在这种情况下,同样适用于字节。

是否可以将整数强制转换为枚举?

如果要在运行时检测基础类型…这看起来很尴尬,而且工作很多。您可以根据基础类型的名称执行case语句。我不知道它会对你有什么好处,因为类型安全问题。