/**
         * Compares for reference equality and value equality.
         */
        public bool equals(RecordQueryReliablePdu rhs)
        {
            bool ivarsEqual = true;

            if (rhs.GetType() != this.GetType())
            {
                return(false);
            }

            ivarsEqual = base.Equals(rhs);

            if (!(_requestID == rhs._requestID))
            {
                ivarsEqual = false;
            }
            if (!(_requiredReliabilityService == rhs._requiredReliabilityService))
            {
                ivarsEqual = false;
            }
            if (!(_pad1 == rhs._pad1))
            {
                ivarsEqual = false;
            }
            if (!(_pad2 == rhs._pad2))
            {
                ivarsEqual = false;
            }
            if (!(_eventType == rhs._eventType))
            {
                ivarsEqual = false;
            }
            if (!(_time == rhs._time))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfRecords == rhs._numberOfRecords))
            {
                ivarsEqual = false;
            }

            if (!(_recordIDs.Count == rhs._recordIDs.Count))
            {
                ivarsEqual = false;
            }
            if (ivarsEqual)
            {
                for (int idx = 0; idx < _recordIDs.Count; idx++)
                {
                    if (!(_recordIDs[idx].Equals(rhs._recordIDs[idx])))
                    {
                        ivarsEqual = false;
                    }
                }
            }


            return(ivarsEqual);
        }
        /**
          * The equals method doesn't always work--mostly on on classes that consist only of primitives. Be careful.
          */
        public bool equals(RecordQueryReliablePdu rhs)
        {
            bool ivarsEqual = true;

            if(rhs.GetType() != this.GetType())
            return false;

             if( ! (_requestID == rhs._requestID)) ivarsEqual = false;
             if( ! (_requiredReliabilityService == rhs._requiredReliabilityService)) ivarsEqual = false;
             if( ! (_pad1 == rhs._pad1)) ivarsEqual = false;
             if( ! (_pad2 == rhs._pad2)) ivarsEqual = false;
             if( ! (_eventType == rhs._eventType)) ivarsEqual = false;
             if( ! (_time == rhs._time)) ivarsEqual = false;
             if( ! (_numberOfRecords == rhs._numberOfRecords)) ivarsEqual = false;

             for(int idx = 0; idx < _recordIDs.Count; idx++)
             {
            FourByteChunk x = (FourByteChunk)_recordIDs[idx];
            if( ! ( _recordIDs[idx].Equals(rhs._recordIDs[idx]))) ivarsEqual = false;
             }

            return ivarsEqual;
        }