using System;
using System.Collections.Generic;
namespace cSharpSolution
{
internal class Program
{
public enum AlphaEnum
{
A, B, C
};
public enum BetaEnum
{
A, B, C
}
/// <summary>
/// 测试 c# 的 Enum 作为字典的 key 是什么?
/// </summary>
/// <param name="args"></param>
private static void Main(string[] args)
{
var d = new Dictionary<Enum, int>();
d[AlphaEnum.A] = 111;
d[BetaEnum.A] = 222;
Console.WriteLine($"d[AlphaEnum.A] : {d[AlphaEnum.A]} ");
Console.WriteLine($"d[BetaEnum.A] : {d[BetaEnum.A]} ");
foreach (var item in d)
{
Console.WriteLine($"<{item.Key} : {item.Value} >");
}
}
}
}
源码如上,拷贝到文件里可直接运行
主要疑问在定义了一个 <Enum, int> 的字典,以 Enum 为 key 的时候
原本以为 Enum 会转换成 int,后面的赋值会覆盖前面的赋值
但实际上应该是转换成了 <类型+int> 的一个字符串或者怎样的东西,使得不同的 enum 类型的 “0 值” 可以作为不重复的 key
请教一下有没有相关的介绍说明,感觉这一块是个挺奇怪的默认行为
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.