|
|
1
9
这个
如果你稍微考虑一下,这真的是唯一一条理智的路线
|
|
|
2
8
如果使用可变引用类型作为键,则
|
|
|
3
5
这个
|
|
|
4
3
这并不能避免这种情况。这取决于调用代码来强制执行:
(从 MSDN ) |
|
|
5
3
如果引用类型不重写equals/gethashcode,则使用默认比较器的字典将不关心任何键对象的字段或属性,因此不会注意或关心它们是否更改。最简单的方法是将默认的gethashcode方法看作返回与“object id”相关的数字,将默认的equals方法看作比较“object id”的方法。实际上,在一个限制为20亿或更少对象的系统中,gethashcode可以简单地返回一个对象ID,但出于各种原因,它也可以做其他事情。 如果equals或gethashcode检查对象的唯一部分是对象ID,那么对于这些函数而言,所有对象都是不可变的。一旦创建了一个对象,它将始终具有相同的ID,并且在前一个对象ID的所有痕迹从宇宙中消失之前,该ID将永远不会用于任何其他对象。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |