MemoryStream.SetLength(Int64) Método

Definición

Establece la longitud de la secuencia actual en el valor especificado.

public:
 override void SetLength(long value);
public override void SetLength (long value);
override this.SetLength : int64 -> unit
Public Overrides Sub SetLength (value As Long)

Parámetros

value
Int64

Valor en el que establecer la longitud.

Excepciones

La secuencia actual no es de tamaño variable y value es mayor que la capacidad actual.

o bien

La secuencia actual no admite escritura.

value es negativo o es mayor que la longitud máxima de MemoryStream, donde la longitud máxima es (Int32.MaxValue - origin) y origin es el índice en el búfer subyacente en el que se inicia la secuencia.

Comentarios

Este método invalida SetLength.

Si el valor especificado es menor que la longitud actual de la secuencia, la secuencia se trunca. Si después del truncamiento, la posición actual dentro de la secuencia está más allá del final de la secuencia, el ReadByte método devuelve -1, el Read método lee cero bytes en la matriz de bytes proporcionada y Write los WriteByte métodos anexan bytes especificados al final de la secuencia, lo que aumenta su longitud. Si el valor especificado es mayor que la capacidad actual y el flujo es redimensionable, la capacidad se incrementa y la posición actual dentro de la secuencia no cambia. Si se aumenta la longitud, el contenido de la secuencia entre la antigua y la nueva longitud se inicializan en ceros.

Nota

Una MemoryStream instancia debe admitir la escritura para que este método funcione. Utilice la CanWrite propiedad para determinar si la instancia actual admite la escritura. Para obtener información adicional, vea CanWrite.

Se aplica a

Consulte también