6

假设我有枚举,其底层类型是字节:

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

我可以将一些 int 文字转换为此枚举的基础类型(在这种情况下为字节)吗?

像这样的东西不起作用(错误:“;预期”):

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

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

谢谢。

4

2 回答 2

6

我认为以下将起作用。但我不确定它是否会在所有情况下为您提供所需的行为。

var x = Convert.ChangeType(15, Enum.GetUnderlyingType(typeof(EmpType)))
于 2013-05-07T03:56:40.647 回答
1

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

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

如果你想在运行时检测底层类型......这似乎很尴尬而且工作量很大。您可以根据基础类型的名称来做一个 case 语句。由于类型安全问题,我不确定它对你有什么好处。

于 2013-05-07T03:57:07.633 回答