C#如何决定哪个枚举值作为返回值? 任何规则?

我找到了一个很有趣的东西 – 让我们说:

enum Myenum { a, b, c= 0 } public class Program { static void Main(string[] args) { Myenum ma = Myenum.a; Console.WriteLine(ma); } } 

结果是,为什么?

如果我说:

  enum Myenum { a, b=0, c} public class Program { static void Main(string[] args) { Myenum ma = Myenum.a; Console.WriteLine(ma); } } 

结果变成“b”,为什么?

来自Enum.ToString

如果多个枚举成员具有相同的基础值,并且您尝试根据其基础值检索枚举成员名称的字符串表示forms,则您的代码不应对该方法将返回的名称做出任何假设 。 例如,以下枚举定义了两个具有相同基础值的成员Shade.Gray和Shade.Grey。

相关: enum.ToString返回错误的值?

所以如果你想依赖这个名字,我会分配唯一的值:

 enum Myenum { hello = 1, world = 2, qiang = 3 }