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

来源:学生作业帮助网 编辑:作业帮 时间:2024/08/28 20:58:58
在c#中的seek(0,seek.begin)里面的参数的具体意思0和begin 是不是相互矛盾啊,都是表示起始的意思
xTn@K} VDTj IQUBw  ! \(`/̜s &4{oh]o2_[ d!?YeS.e8.y;PVCƱuհs剓2־Zw #աX5n+%mVdPA-Kj-OxQXMƒDϭǚ9`Sݐɲv><%<5JtZ{0Ժ!s6* ]9j!b: Y(WUfruU5)腈  :ÔuYPD{YH;t Zv}/g,-T. d aJ !߂  ڃ2$I&9|H,mDNMHiEb9ɍt֞Q}8 2h 'W+(wO|AkySM}⽚+ތ D!@X>/|J0G-v KӫnڀN“mגA;{cp@4̜q7Ƒ^cC_\NǏx{c"

在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 )
所以说,第一个参数是相对于第二个参数指定的位置的相对偏移位置.