好了,现在你知道真正的枚举LY是,你可以给一个方便的字符串句柄号码清单喜欢:
public enum ErrorCode
{
CTCLSM = 1,
CTSTRPH = 2,
FBR = 3,
SNF = 4
}
而且,@StriplingWarrior显示,你可以走这么远,通过获取枚举字符串名称和更换下划线等,但我认为你想要的是将一个漂亮的人字符串与每个值相关联的方式。这个怎么样?
public enum ErrorCode
{
[EnumDisplayName("Cataclysm")]
CTCLSM = 1,
[EnumDisplayName("Catastrophe")]
CTSTRPH = 2,
[EnumDisplayName("Fubar")]
FBR = 3,
[EnumDisplayName("Snafu")]
SNF = 4
}
好了有可能是一些在System.ComponentModel
,它这一点 - 让我知道。我的解决方案的代码是在这里:
[AttributeUsage(AttributeTargets.Field)]
public class EnumDisplayNameAttribute : System.Attribute
{
public string DisplayName { get; set; }
public EnumDisplayNameAttribute(string displayName)
{
DisplayName = displayName;
}
}
而时髦的枚举扩展,使得它可能:
public static string PrettyFormat(this Enum enumValue)
{
string text = enumValue.ToString();
EnumDisplayNameAttribute displayName = (EnumDisplayNameAttribute)enumValue.GetType().GetField(text).GetCustomAttributes(typeof(EnumDisplayNameAttribute), false).SingleOrDefault();
if (displayName != null)
text = displayName.DisplayName;
else
text = text.PrettySpace().Capitalize(true);
return text;
}
因此得到人性化的价值了,你可以只是做ErrorCode.CTSTRPH.PrettyFormat()
为什么你想要Simple_User intead吗?如果你确实为什么不改变枚举值?无论如何你想完成什么,因为它可能是你想要使用一个枚举,你可能需要别的东西,需要更多的上下文。 –
你的代码不能编译... –
解释一下,你是如何编译这段代码并产生不需要的结果的? :-) –