获取枚举值的说明,而不使用反射

本文关键字:反射 枚举 说明 获取 | 更新日期: 2023-09-27 18:34:18

首先,在我的情况下使用枚举的原因只是为错误代码开发一个目录,我一直在使用Description属性来保留实际的错误消息。我可以使用反射获取Description属性的值,但我的问题是:有没有另一种方法可以在不使用反射的情况下获取该属性的值?例如,C# 中有一个 Enum 类型,那么是否可以使用该类型来获取枚举中的属性值?

**我知道使用类开发数据模型是一个更好的举措,枚举是一个古老的习惯,我坚持这样做的原因只是因为我只是想知道我是否可以在没有反射的情况下获得这些属性的值。

获取枚举值的说明,而不使用反射

枚举根本不

是一个旧习惯。这非常有用,但在这里讨论它会跑题......

没有反思,我只能考虑某种映射:

class Program
{
    static void Main(string[] args)
    {
        var crazyValue = CrazyEnum.craZyValue1;
        var resonableValue = crazyValue.ToRreasonableString();
    }
}
enum CrazyEnum
{
    craZyValue1,
    CrazYvalUe2
}
static class CrazyEnumMap
{
    private static Dictionary<CrazyEnum, string> resonableStrings = new Dictionary<CrazyEnum, string>
    {
        { CrazyEnum.craZyValue1, "Hallo world!" },
        { CrazyEnum.CrazYvalUe2, "Hallo enum!" }
    };
    public static string ToRreasonableString(this CrazyEnum value)
    {
        return resonableStrings[value];
    }
}