MemoryStream.SetLength(Int64) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает указанное значение для длины текущего потока.
public:
override void SetLength(long value);
public override void SetLength (long value);
override this.SetLength : int64 -> unit
Public Overrides Sub SetLength (value As Long)
Параметры
- value
- Int64
Значение задаваемой длины.
Исключения
Размер текущего потока изменить нельзя, и значение параметра value
больше текущей емкости.
-или-
Текущий поток не поддерживает запись.
value
значение отрицательное значение или больше максимальной длины MemoryStream, где максимальная длина — (Int32.MaxValue - origin
) и origin
является индексом в базовом буфере, с которого начинается поток.
Комментарии
Этот метод переопределяет метод SetLength.
Если указанное значение меньше текущей длины потока, поток усекается. Если после усечения текущая позиция в потоке находится после конца потока, ReadByte метод возвращает -1, Read метод считывает ноль байтов в предоставленный массив байтов, а WriteWriteByte методы добавляют указанные байты в конец потока, увеличивая его длину. Если указанное значение больше текущей емкости и размер потока изменяется, емкость увеличивается, а текущая позиция в потоке остается неизменной. Если длина увеличена, содержимое потока между старой и новой длиной инициализируется нулями.
Примечание
Экземпляр MemoryStream должен поддерживать запись, чтобы этот метод работал. Используйте свойство , CanWrite чтобы определить, поддерживает ли текущий экземпляр запись. Дополнительные сведения см. в разделе CanWrite.