コード例 #1
0
ファイル: Address.cs プロジェクト: valuecreation/RoutePlanner
        /// <summary>
        /// Returns hash code for the address object.
        /// </summary>
        /// <returns>A hash code for the address object.</returns>
        public override int GetHashCode()
        {
            unchecked
            {
                var hashCode = 1173891413;

                foreach (var addressPart in EnumHelpers.GetValues <AddressPart>())
                {
                    string addressPartValue = this[addressPart];

                    var partHash = addressPartValue == null ?
                                   1873891399 : PART_COMPARER.GetHashCode(addressPartValue);

                    hashCode = 873891391 * hashCode + partHash;
                }

                return(hashCode);
            }
        }
コード例 #2
0
ファイル: Address.cs プロジェクト: valuecreation/RoutePlanner
        /// <summary>
        /// Check is the same address values.
        /// </summary>
        /// <param name="obj">Address to compare.</param>
        /// <returns>Is the same address values.</returns>
        public override bool Equals(object obj)
        {
            Address address = obj as Address;

            if (object.ReferenceEquals(address, null))
            {
                return(false);
            }

            foreach (var addressPart in EnumHelpers.GetValues <AddressPart>())
            {
                string addressPartValue          = this[addressPart];
                string addressPartToCompareValue = address[addressPart];

                if (!PART_COMPARER.Equals(addressPartValue, addressPartToCompareValue))
                {
                    return(false);
                }
            }

            return(true);
        }