在c#中的seek(0,seek.begin)里面的参数的具体意思0和begin 是不是相互矛盾啊,都是表示起始的意思

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/28 15:04:40
在c#中的seek(0,seek.begin)里面的参数的具体意思0和begin是不是相互矛盾啊,都是表示起始的意思在c#中的seek(0,seek.begin)里面的参数的具体意思0和begin是不

在c#中的seek(0,seek.begin)里面的参数的具体意思0和begin 是不是相互矛盾啊,都是表示起始的意思
在c#中的seek(0,seek.begin)里面的参数的具体意思
0和begin 是不是相互矛盾啊,都是表示起始的意思

在c#中的seek(0,seek.begin)里面的参数的具体意思0和begin 是不是相互矛盾啊,都是表示起始的意思
不矛盾.
第一个参数是表示相对位置,第二个参数是参照位置.
假设现在有一个长度为 100 字节的流.
由于从流读取或者写入数据,会影响到流的所谓的游标指向的当前位置.
假设,最开始位置为0.
现在我们调用Read函数,读取了20字节.那么位置就成了20.
如果现在我们还想回到开始,再读取一次,怎么办呢?
那就只能调用 seek( 0,Seek.begin )了 (ps:是seek.begin么?.net里好像是SeekOrigin.Begin,鉴于楼主是这么写的,我也这么写吧,方便你看得懂.)
又假设,现在的位置是30,如果我们想把位置设置成当前位置往后退3字节呢?
那么我们可以调用Seek( -3,seek.current )
如果我们想把位置设成开头第3个字节呢?
那就调用 seek( 3,seek.begin )
所以说,第一个参数是相对于第二个参数指定的位置的相对偏移位置.