我有一个简单的枚举:
enum E
{
FullNameForA = 1,
A = 1,
FullNameForB = 2,
B = 2
}
Run Code Online (Sandbox Code Playgroud)
目标是能够使用不同的字符串值对相同的积分值进行扭曲 - 必须使用FullNameFor*作为默认值.换句话说,用户可以提供EA作为输入,但代码应使用E.FullNameForA进行输出.
似乎默认情况下C#将使用具有相同积分值的元素的字母顺序,这使我的目标更难.是对的吗?任何想法如何克服这个?
似乎默认情况下C#将使用具有相同整数值的元素的字母顺序
在什么情况下?当您将值转换回字符串?来自以下文件Enum.ToString:
如果多个枚举成员具有相同的基础值,并且您尝试根据其基础值检索枚举成员名称的字符串表示形式,则您的代码不应对该方法将返回的名称做出任何假设.
(请注意,决定是在BCL中 - 这不是语言决定.)
我建议如果你想为每个值建立一个规范的字符串表示,你创建一个Dictionary<E, string>并参考而不是调用ToString().
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |