سؤال

وبقدر ما أعرف، ليس هناك ما يعادلها المباشر في C #. فكرتي الحالية هو استخدام قاموس مع العرف IEqualityComparer، الذي يتحقق من المساواة المرجعية.

ولكن، يبدو أن هذا يفقد ميزة التي اكتسبتها تجزئة. هل هناك طريقة للحصول على شفرة التجزئة الفردية من كل كائن مختلف؟ أم أن هذا مستحيل وأود أن استخدام بعض النهج الآخر؟

هل كانت مفيدة؟

المحلول

ويمكنك استخدام RuntimeHelpers.GetHashCode(object) التي تدعو object.GetHashCode() غير تقريبا - وهذا هو ما يعادل System.identityHashcode في جاوة. أعتقد أن هذا ما كنت بعد. حتى IEqualityComparer من شأنه فقط أن استخدام تجزئة وobject.ReferenceEquals من أجل المساواة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top