public bool build(byte[] byteStream, ref Int32 offset) { ProtoCRT_t <UInt32> element_count = new ProtoCRT_t <UInt32>(); if (!element_count.build(byteStream, ref offset)) { return(false); } if (0 == element_count.value_) { value_ = null; return(true); } value_ = new T[element_count.value_]; ProtoCRT_t <T> tmp = new ProtoCRT_t <T>(); for (UInt32 i = 0; i < element_count.value_; ++i) { if (!tmp.build(byteStream, ref offset)) { return(false); } value_[i] = tmp.value_; } return(true); }
public bool build(byte[] _byte_stream, ref Int32 _offset) { ProtoCRT_t <UInt32> element_count = new ProtoCRT_t <UInt32>(); if (!element_count.build(_byte_stream, ref _offset)) { return(false); } for (UInt32 i = 0; i < element_count.value_; ++i) { T item = new T(); if (!item.build(_byte_stream, ref _offset)) { return(false); } else { base.Add(item); } } return(true); }
public bool build(byte[] byteStream, ref Int32 offset) { ProtoCRT_t <UInt32> element_count = new ProtoCRT_t <UInt32>(); if (!element_count.build(byteStream, ref offset)) { return(false); } if (0 == element_count.value_) { value_ = ""; return(true); } else if (offset + element_count.value_ > byteStream.Length) { return(false); } byte[] b_data = new byte[element_count.value_]; Buffer.BlockCopy(byteStream, offset, b_data, 0, (int)element_count.value_); offset += (int)element_count.value_; value_ = StringHelper.GB2312ToString(b_data); return(true); }