public override int GetHashCode() {
if (this.hashCode == 0) {
int hashCode;
// Start with local name
hashCode = this.localNameHash;
// Add page indexes
if (this.pageSibling != null)
hashCode += (hashCode << 7) ^ this.pageSibling[0].PageInfo.PageNumber;
if (this.pageParent != null)
hashCode += (hashCode << 7) ^ this.pageParent[0].PageInfo.PageNumber;
if (this.pageSimilar != null)
hashCode += (hashCode << 7) ^ this.pageSimilar[0].PageInfo.PageNumber;
// Save hashcode. Don't save 0, so that it won't ever be recomputed.
this.hashCode = ((hashCode == 0) ? 1 : hashCode);
}
return this.hashCode;
}