На самом деле очень трудно реализовать GetHashCode()
правильно, потому что, в дополнение к правилам Marc, уже упомянутый, хэш-код, не должен изменяться в течение времени жизни объекта. Поэтому поля, которые используются для вычисления хэш-кода, должны быть неизменными.
я наконец нашел решение этой проблемы, когда я работал с NHibernate. Мой подход должен вычислить хэш-код из идентификатора объекта. Идентификатор может только быть установлен, хотя конструктор поэтому, если Вы хотите изменить идентификатор, который очень маловероятен, необходимо создать новый объект, который имеет новый идентификатор и поэтому новый хэш-код. Этот подход работает лучше всего с GUID, потому что можно предоставить конструктору без параметров, который случайным образом генерирует идентификатор.
Нашел решение:
UltraPictureBox1.Image = _
My.Resources.ResourceManager.GetObject(object_name_as_string)