public Seek ( long offset, SeekOrigin origin ) : long | ||
offset | long | A byte offset relative to the origin parameter. |
origin | SeekOrigin | A value of type |
return | long |
public override long Seek(long offset, SeekOrigin origin) {
long newPos=readPos_;
switch (origin) {
case SeekOrigin.Begin:
newPos=start_+offset;
break;
case SeekOrigin.Current:
newPos=readPos_+offset;
break;
case SeekOrigin.End:
newPos=end_+offset;
break;
}
if (newPos<start_) {
throw new ArgumentException("Negative position is invalid");
}
if (newPos>=end_) {
throw new IOException("Cannot seek past end");
}
readPos_=newPos;
return readPos_;
}