C#如何决定哪个枚举值作为返回值?有规则吗?
我发现了一件非常有趣的事情——比如说:C#如何决定哪个枚举值作为返回值?有规则吗?,c#,.net,enums,C#,.net,Enums,我发现了一件非常有趣的事情——比如说: 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=
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”,为什么?来自:
如果多个枚举成员具有相同的基础值
尝试检索枚举的字符串表示形式
基于其基础值的成员名称,您的代码不应
关于方法将返回哪个名称的任何假设。例如
下面的枚举定义了两个成员,Shade.Gray和
灰色,具有相同的基本值
相关的:
因此,如果您不想依赖名称,我会指定唯一的值:
enum Myenum { hello = 1, world = 2, qiang = 3 }
相关:和@TimSchmelter为什么你会找到重复的链接,然后再发布一个答案?@Rawling:因为我认为它们只是相关的(至少第一个链接不是重复的)。我还发现了答案中没有提到的文档。@TimSchmelter在这种情况下,你为什么建议将其作为副本?@ths:是的,但你必须知道
Console.WriteLine(ma)
使用Enum.ToString
,你必须知道这是文档化的,不幸的是,通常不是这样。如果是这么简单,我想知道为什么相关(甚至重复)问题的答案没有提到MSDN。