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

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Initializes a new non-resizable instance of the MemoryStream class based on the specified region of a byte array, with the CanWrite property set as specified.

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


Public Sub New ( _
    buffer As Byte(), _
    index As Integer, _
    count As Integer, _
    writable As Boolean _
public MemoryStream(
    byte[] buffer,
    int index,
    int count,
    bool writable


  • buffer
    Type: array<System..::.Byte>[]()[]
    The array of unsigned bytes from which to create this stream.


Exception Condition

buffer is nullNothingnullptra null reference (Nothing in Visual Basic).


index or count are 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 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).

This constructor does not expose the underlying stream. GetBuffer throws UnauthorizedAccessException. However, you can write to the stream if writable is true.

Version Notes

Windows Phone

System.ArgumentNullException is thrown when trying to retrieve a MemoryStream object with a size of zero bytes from a resource file. On Windows, no exception is thrown when the length is equal to zero.

Version Information

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0


Windows Phone

See Also


MemoryStream Class

MemoryStream Overload

System.IO Namespace