C#,将变量转换为Enum.GetUnderlyingType

Are*_*yst 4 .net c# enums casting

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

enum EmpType : byte
{
    Manager = 1,
    Worker = 2,
}
Run Code Online (Sandbox Code Playgroud)

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

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

byte x = (Enum.GetUnderlyingType(typeof(EmpType)))15;
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Ste*_*ler 5

我认为以下内容可行.但是我不确定它会在所有情况下都能让你获得理想的行为.

var x = Convert.ChangeType(15, Enum.GetUnderlyingType(typeof(EmpType)))
Run Code Online (Sandbox Code Playgroud)