dictionary и hashset коллекций не переопределяя Equals и GetHashCode, и не будет никаких пенальти по перформансу? Как в таком случае это всё работает? я смотрю на исходники и вызывается у Object.GetHashCode -> RuntimeHelpers.GetHashCode
почитав доку - https://docs.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.runtimehelpers.gethashcode?redirectedfrom=MSDN&view=netframework-4.8#System_Runtime_CompilerServices_RuntimeHelpers_GetHashCode_System_Object_
я не понял как это работает. я знаю что у reference types есть SyncBlock и туда записывается hashCode. Но как его генерирует RuntimeHelpers?
для value types всё понятно и разжевано
https://devblogs.microsoft.com/premier-developer/performance-implications-of-default-struct-equality-in-c/
Да, можешь. Нет, не будет пенальти. Просто хэш и equals будут по object identity. Если тебя это устраивает, то всё хорошо.
Обсуждают сегодня