ASP.NET中的枚举和字符串值

时间:2010-05-22 22:47:36

标签: asp.net string enumeration

我正在寻找关于枚举和检索关联字符串值的最佳实践建议。鉴于此:

public enum Fruits {
    Apple,
    Orange,
    Grapefruit,
    Melon
}

获取名称的相关字符串值的最佳方法是什么?例如。 “Grapefruit”,因为字符串值可能与枚举中的表示不匹配。例如“Casaba Melon”

我目前的想法是接受枚举和返回字符串的函数,但这不意味着硬编码字符串值(我不想这样做)吗?是否正在使用资源文件,其中字符串可以通过枚举过于繁重的方式检索?

2 个答案:

答案 0 :(得分:4)

要回答您的问题,您可以使用属性修饰您的枚举,以便为它们提供正确的显示字符串。以下是一些例子

这种方法的主要限制是如果您需要国际化您的应用程序,我不知道如何使属性字符串根据线程区域设置(或用于区分区域设置的任何方式)更改值。

答案 1 :(得分:1)

R0MANARMY已经提供了一个非常好的解决方案。我会提供这个替代品,不太好,但仍然。您可以更轻松地使这种文化敏感。

说你有枚举

public enum NicePeople
{
    SomeGuy,
    SomeOtherGuy
}

然后您可以制作像这样的扩展方法

public static class MyExtensions
{
    public static string GetName(this NicePeople tst)
    {
        switch (tst)
        {
            case NicePeople.SomeGuy:
                return "Some Nice guy";
            case NicePeople.SomeOtherGuy:
                return "Another Nice Guy";
            default:
                throw new Exception("Naw");
        }
    }
}

让你的连环杀手如此命名

NicePeople.SomeGuy.GetName()