在我的代码中,我正在解析一个字节数组。要顺序解析我当前在索引中传递的字节,如下所示:
headerData = ParseHeader(bytes, ref index)
middleData = ParseMiddle(bytes, ref index)
tailData = ParseTail (bytes, ref index)
如果没有硬编码增加标头的数量,有没有办法实现类似的功能而不必通过引用传递索引?这是使用 ref 关键字的罕见情况之一是最佳解决方案吗?
答案 0 :(得分:0)
就像SLaks所说,一种可能的解决方案是使用流。
要从当前字节数组创建流,您可以执行以下操作:
MemoryStream stream = new MemoryStream(bytes);
要读取流的当前字节,您可以使用ReadByte
方法,如下所示:
byte b = stream.ReadByte();
流将跟踪数组中的当前索引,因此您的新代码将如下所示:
MemoryStream stream = new MemoryStream(bytes);
headerData = ParseHeader(stream)
middleData = ParseMiddle(stream)
tailData = ParseTail (stream)
查看documentation以查看可用于MemoryStream
的其他方法。