پیشتر برای محاسبهی هش اشیاء، از یک چنین روشی استفاده میشد:
public override int GetHashCode() { unchecked { int hashCode = 17; hashCode = (hashCode * 23) + (name == null ? 0 : this.name.GetHashCode()); hashCode = (hashCode * 23) + this.age; foreach (string power in this.powers) { hashCode = (hashCode * 23) + (power == null ? 0 : power.GetHashCode()); } return hashCode; } }
اکنون با استفاده از ساختار جدید HashCode در NET Core 2.1.، بجای آن میتوان نوشت:
public override int GetHashCode() { var hash = new HashCode(); hash.Add(this.object1); hash.Add(this.object2); return hash.ToHashCode(); }