C#byte [] substring?(设计)

mpe*_*pen 3 c# bytearray design-decisions

我正在异步地将一些文件下载到一个大字节数组中,并且我有一个回调函数会在某些数据添加到该数组时定期触发.如果我想让开发人员能够使用添加到数组中的最后一块数据,那么......那我该怎么做呢?在C++中,我可以给它们一个指向中间位置的指针,然后告诉它们在上一次操作中添加的字节数,这样它们至少知道它们应该看的块...我真的不知道我想给他们第二份那些数据,这只是浪费.

我只是想在人们想要在文件下载完成之前处理这些数据.有人真的想这样做吗?或者它无论如何都是无用的功能?我已经有一个回调,当缓冲区(整个字节数组)已满,然后他们可以转储整个事情而不用担心起点和终点......

Ste*_*nov 11

.NET有一个完全符合你想要的结构:

System.ArraySegment.

在任何情况下,也很容易自己实现它 - 只需创建一个带有基本数组,偏移量和长度的构造函数.然后实现一个索引器来抵消幕后的索引,这样你的ArraySegment就可以无缝地用在数组的位置.