哈希码是否存储在 SyncBlockIndex/SyncBlock
Does hash code is being stored in SyncBlockIndex/SyncBlock
.net 中的每个 object 都有 headers(SyncBlockIndex
和 MethodTablePointer
),当您调用 GetHashCode()
时,结果可以保存在 SyncBlockIndex
如果没有 链接 SyncBlock 到此 object,或者在 SyncBlock 中如果有。
当我们不覆盖 GetHashCode
方法时,哈希码是在 object 存在期间保存的,但是如果我们 return 动态哈希码(依赖object 的状态)?
我知道哈希码在 object 存在期间应该是相同的,问题的目的是了解哈希码是如何存储在 SyncBlockIndex 或 SyncBlock 中的。
how hash code will be storing in case we return dynamic hash code (dependent on object's state)?
如果哈希码是通过覆盖 GetHashCode
动态计算的,则不会存储在任何地方...
使用 SyncBlockIndex
作为对象的 "default" 哈希码是一个实现细节,不应依赖于框架之外的任何内容。
.net 中的每个 object 都有 headers(SyncBlockIndex
和 MethodTablePointer
),当您调用 GetHashCode()
时,结果可以保存在 SyncBlockIndex
如果没有 链接 SyncBlock 到此 object,或者在 SyncBlock 中如果有。
当我们不覆盖 GetHashCode
方法时,哈希码是在 object 存在期间保存的,但是如果我们 return 动态哈希码(依赖object 的状态)?
我知道哈希码在 object 存在期间应该是相同的,问题的目的是了解哈希码是如何存储在 SyncBlockIndex 或 SyncBlock 中的。
how hash code will be storing in case we return dynamic hash code (dependent on object's state)?
如果哈希码是通过覆盖 GetHashCode
动态计算的,则不会存储在任何地方...
使用 SyncBlockIndex
作为对象的 "default" 哈希码是一个实现细节,不应依赖于框架之外的任何内容。