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

如果指定的值小于流的当前长度,则会截断该流。 如果在截断流中的当前位置超过流的末尾后,该方法将返回 -1,ReadByteRead该方法将零字节读取到提供的字节数组中,并且WriteWriteByte方法在流末尾追加指定的字节,增加其长度。 如果指定的值大于当前容量,并且该流可调整大小,则容量将增加,并且流的当前位置保持不变。 如果长度增加,则旧长度和新长度之间的流内容将初始化为零。

注释

MemoryStream实例必须支持编写此方法才能正常工作。 使用 CanWrite 属性确定当前实例是否支持写入。 有关其他信息,请参阅 CanWrite

适用于

另请参阅