c# - 如何获取枚举的基础值

标签 c# .net enums

我声明了以下枚举:

 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/

相关文章:

java - 具有继承功能的枚举

c# - 如何在 C# 中为枚举重载运算符?

C# - 代码有什么问题(泛型、静态方法等)

c# - 为什么 Wiki 中的射弹轨迹公式会给出奇怪的结果?

c# - vscode 有 csproj 生成器吗?

C# SharpZipLib 去除不相关的目录名

c# - 在 C# SQLCLR 中更改静态只读变量是否安全?

c# - 如何为多个 Office 程序创建插件?

c# - 如果 A 和 B 是枚举类型,为什么我可以将 A[] 转换为 B[]?

c# - 使用Nuget时有没有简单的方法可以关闭包含多语言包?