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 является отрицательным
–или–
В .NET 11 и более поздних версиях value больше Array.MaxLength.
–или–
В .NET 10 и более ранних версиях value больше максимальной длины MemoryStream, где максимальная длина — (Int32.MaxValue - origin), а origin — индекс в базовый буфер, с которого запускается поток.
Комментарии
Этот метод переопределяет метод SetLength.
Если указанное значение меньше текущей длины потока, поток усечен. Если после усечения текущей позиции в потоке прошло конец потока, ReadByte метод возвращает значение -1, Read метод считывает ноль байтов в предоставленный массив байтов и WriteWriteByte методы добавляют указанные байты в конце потока, увеличив его длину. Если указанное значение больше текущей емкости и поток можно изменить размер, емкость увеличивается, а текущая позиция в потоке не изменяется. Если длина увеличивается, содержимое потока между старым и новой длиной инициализируется до нуля.
Note
Экземпляр MemoryStream должен поддерживать запись для работы этого метода. CanWrite Используйте свойство, чтобы определить, поддерживает ли текущий экземпляр запись. Подробнее см. в статье CanWrite.