简体   繁体   English

什么情况下 _buckets[bucketNumber].key == _buckets && ((_buckets[bucketNumber].hash_coll & unchecked(0x80000000)) == 0)) 在Hashtable

[英]Under what circumstances _buckets[bucketNumber].key == _buckets && ((_buckets[bucketNumber].hash_coll & unchecked(0x80000000)) == 0)) in Hashtable

https://source.dot.net/#System.Private.CoreLib/Hashtable.cs https://source.dot.net/#System.Private.CoreLib/Hashtable.cs 代码

Under what conditions will this logic be executed that _buckets[bucketNumber].key == _buckets && ((_buckets[bucketNumber].hash_coll & unchecked(0x80000000)) == 0)) _buckets[bucketNumber].key == _buckets && ((_buckets[bucketNumber].hash_coll & unchecked(0x80000000)) == 0))在什么条件下执行这个逻辑

The key is set to _buckets when that bucket once contained an entry and it is a collision in Remove当该存储桶曾经包含一个条目并且它是 Remove 中的冲突时,该键设置为 _buckets

Reading the comment it's pretty clear: if the bucket exists and has no other value inside (ie if it was never used), or if there was a single value (no collision) and was later removed, thus leaving the bucket empty.阅读评论很清楚:如果桶存在并且内部没有其他值(即,如果它从未使用过),或者如果只有一个值(没有冲突)并且后来被删除,因此桶是空的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM