我发现了一件非常有趣的事情 - 让我们说:
enum Myenum { a, b, c= 0 }
public class Program
{
static void Main(string[] args)
{
Myenum ma = Myenum.a;
Console.WriteLine(ma);
}
}
结果是 a ,为什么?
如果我说:
enum Myenum { a, b=0, c}
public class Program
{
static void Main(string[] args)
{
Myenum ma = Myenum.a;
Console.WriteLine(ma);
}
}
结果变为" b",为什么?
答案 0 :(得分:13)
如果多个枚举成员具有相同的基础值而您 尝试检索枚举的字符串表示形式 会员的名字基于其基础价值,您的代码不应该 关于该方法将返回的名称的任何假设。例如, 以下枚举定义了两个成员,Shade.Gray和 Shade.Grey,具有相同的潜在价值。
相关:enum.ToString return wrong value?
因此,如果您想依赖名称,我会指定唯一值:
enum Myenum { hello = 1, world = 2, qiang = 3 }