bool Read () { ValidateState (); if (!haveRead || readResultUsed) readResult = ReadRecord (); readResultUsed = true; return readResult; }