簡體   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