public void ReplaceToken(ByteArrayToken byteArrayToken, int value) { if ((byteArrayToken.Index + 1) > _list.Count) { throw new InvalidOperationException("no more space to add an integer."); } if (byteArrayToken.BytesToAdd > 2) { throw new NotSupportedException("ByteArrayBuilder supports only tokens with a length of one or two bytes."); } if (byteArrayToken.BytesToAdd == 1) { if (value > byte.MaxValue) { throw new ArgumentException("Value to big to pass to an single byte"); } this.ReplaceToken(byteArrayToken, Convert.ToByte(value)); return; } var byteArray = IntToByteArray(value); this._list[byteArrayToken.Index] = byteArray[0]; this._list[byteArrayToken.Index + 1] = byteArray[1]; }
/// <summary> /// Adds the length byteArrayToken. /// </summary> /// <returns>itself</returns> public ByteArrayBuilder AddToken(byte length, out ByteArrayToken byteArrayToken) { byteArrayToken = new ByteArrayToken(this._list.Count, length); for (var i = 0; i < length; i++) { _list.Add(0); } return(this); }
public void ReplaceToken(ByteArrayToken byteArrayToken, byte value) { _list[byteArrayToken.Index] = value; }