如何获得枚举的基础值
时间:2020-03-06 14:23:43 来源:igfitidea点击:
我声明了以下枚举:
public enum TransactionTypeCode { Shipment = 'S', Receipt = 'R' }
如何从TransactionTypeCode.Shipment获得值" S"或者从TransactionTypeCode.Receipt获得值" R"?
只需执行TransactionTypeCode.ToString(),就可以得到一个枚举名称为" Shipment"或者" Receipt"的字符串,这样就不会割芥末。
解决方案
我相信Enum.GetValues()是我们要找的东西。
试试这个:
string value = (string)TransactionTypeCode.Shipment;
这通常是我设置枚举的方式:
public enum TransactionTypeCode { Shipment("S"),Receipt ("R"); private final String val; TransactionTypeCode(String val){ this.val = val; } public String getTypeCode(){ return val; } } System.out.println(TransactionTypeCode.Shipment.getTypeCode());
我正在寻找那个,我得到了解决方案
使用转换类
int value = Convert.ToInt32(TransactionTypeCode.Shipment);
看看有多容易
我们必须检查枚举的基础类型,然后转换为适当的类型:
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 }