繁体   English   中英

在不使用反射的情况下获取枚举值的描述

[英]Getting description of enum's value without using reflection

首先,在我的案例中使用枚举的原因仅是为错误代码开发目录,而我一直在使用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];
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM