【发布时间】:2010-11-23 23:17:41
【问题描述】:
我知道,当我创建一个以自定义类作为键的字典时,我提供键时的匹配是通过引用比较完成的。例如:
public class SomeClass
{
public object SomeValue { get; set; }
}
// ....
public static void Main()
{
var dict = new Dictionary<SomeClass, string>();
var key1 = new SomeClass { SomeValue = 30 };
dict[key1] = "30";
Console.WriteLine(dict[key1]); // prints "30"
var key2 = new SomeClass { SomeValue = 30 };
Console.WriteLine(dict[key2]); // prints null
}
如果我在 SomeClass 类中覆盖 Equals(和 ==)会发生什么?我会在输出的第二行得到“30”吗?
如果我想要一个基于引用而不是成员值的字典,但我已经覆盖了 Equals,该怎么办?
谢谢!!
【问题讨论】:
标签: .net dictionary