示例#1
0
        /// <summary>
        /// Returns the hash value for a Message
        /// </summary>
        /// <returns>The hash value for a Message</returns>
        public override int GetHashCode()
        {
            int       retValue = headers.GetHashCode();
            ArrayList hc       = new ArrayList();

            if (dest_addr != null)
            {
                hc.Add(dest_addr.GetHashCode());
            }
            if (src_addr != null)
            {
                hc.Add(src_addr.GetHashCode());
            }
            if (buf != null)
            {
                hc.Add(buf.GetHashCode());
            }

            for (int i = 0; i < hc.Count; i++)
            {
                retValue = retValue.GetHashCode() ^ hc[i].GetHashCode();
            }

            return(retValue);
        }