} // ctor private bool ReadRecord(bool throwInvalidBlockLength) { var r = BaseReader.ReadBlock(currentRecord, 0, recordLength); if (r == recordLength) { return(true); } else if (r == 0 || !throwInvalidBlockLength) { return(false); } else { throw new ArgumentException("Invalid block length."); } } // proc ReadRecord