System.IO.ChunkedMemoryStream.Write C# (CSharp) Méthode

Write() public méthode

public Write ( byte buffer, int offset, int count ) : void
buffer byte
offset int
count int
Résultat void
		public override void Write(byte[] buffer, int offset, int count)
		{
			if (count > MAX_CHUNK_SIZE)
			{
				Write(buffer, offset, MAX_CHUNK_SIZE);
				Write(buffer, offset + MAX_CHUNK_SIZE, count - MAX_CHUNK_SIZE);
				return;
			}


			while ((count != 0) && (_positionChunk != _chunks.Count))
			{
				int toChunk = Math.Min(count, _chunks[_positionChunk].Length - _positionOffset);
				if (toChunk != 0)
				{
					Array.Copy(buffer, offset, _chunks[_positionChunk], _positionOffset, toChunk);
					offset += toChunk;
					count -= toChunk;
					_position += toChunk;
				}

				_positionOffset = 0;
				_positionChunk++;
			}

			if (count != 0)
			{
				var chunk = new byte[count];
				Array.Copy(buffer, offset, chunk, 0, count);
				_chunks.Add(chunk);
				_positionChunk = _chunks.Count;
				_position += count;
			}
		}
	}