我声明了以下枚举:
public enum TransactionTypeCode { Shipment = 'S', Receipt = 'R' }
如何从 TransactionTypeCode.Shipment 获取值“S”或从 TransactionTypeCode.Receipt 获取值“R”?
简单地执行 TransactionTypeCode.ToString() 会给出枚举名称“Shipment”或“Receipt”的字符串,因此它不会削减芥末。
最佳答案
您必须检查枚举的基础类型,然后转换为正确的类型:
public enum SuperTasks : int
{
Sleep = 5,
Walk = 7,
Run = 9
}
private void btnTestEnumWithReflection_Click(object sender, EventArgs e)
{
SuperTasks task = SuperTasks.Walk;
Type underlyingType = Enum.GetUnderlyingType(task.GetType());
object value = Convert.ChangeType(task, underlyingType); // x will be int
}
关于c# - 如何获取枚举的基础值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/97391/