MemoryStream Constructor (Byte[], Int32, Int32, Boolean, Boolean)

MemoryStream Constructor (array<Byte>, Int32, Int32, Boolean, Boolean)

Initializes a new instance of the MemoryStream class based on the specified region of a byte array, with the CanWrite property set as specified, and the ability to call GetBuffer set as specified.

Namespace:  System.IO
Assembly:  mscorlib (in mscorlib.dll)

	array<unsigned char>^ buffer, 
	int index, 
	int count, 
	bool writable, 
	bool publiclyVisible


Type: array<System::Byte>
The array of unsigned bytes from which to create this stream.
Type: System::Int32
The index into buffer at which the stream begins.
Type: System::Int32
The length of the stream in bytes.
Type: System::Boolean
The setting of the CanWrite property, which determines whether the stream supports writing.
Type: System::Boolean
true to enable GetBuffer, which returns the unsigned byte array from which the stream was created; otherwise, false.


buffer is nullptr.


index or count is negative.


The buffer length minus index is less than count.

The CanRead and CanSeek properties are both set to true. Capacity is set to count.

The new stream instance can be written to, but the Capacity of the underlying byte array cannot be changed. The length of the stream cannot be set to a value greater than the initial length of the specified byte array; however, the stream can be truncated (see SetLength).

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Community Additions

© 2015 Microsoft