当前位置:  开发笔记 > 编程语言 > 正文

如何获取枚举的基础值

如何解决《如何获取枚举的基础值》经验,为你挑选了1个好方法。

我声明了以下枚举:

 public enum TransactionTypeCode { Shipment = 'S', Receipt = 'R' }

如何从TransactionTypeCode.Shipment获取值'S'或从TransactionTypeCode.Receipt获取'R'?

简单地做TransactionTypeCode.ToString()会给出一个Enum名称为"Shipment"或"Receipt"的字符串,因此它不会切断芥末.



1> 小智..:

您必须检查枚举的基础类型,然后转换为正确的类型:

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
    }    


+1这是我需要自动(通过反射)从实体对象创建SP参数值列表的最后一步.我无法将枚举保存到数据库中,因此我保存了基础值.
推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有