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 以降のバージョンでは、valueArray.MaxLength より大きくなります。

-または-

.NET 10 以前のバージョンでは、 valueMemoryStream の最大長より大きく、最大長は (Int32.MaxValue - origin)、origin はストリームが開始される基になるバッファーへのインデックスです。

注釈

このメソッドは、SetLength をオーバーライドします。

指定した値がストリームの現在の長さより小さい場合、ストリームは切り捨てられます。 切り捨て後にストリーム内の現在の位置がストリームの末尾を超える場合、 ReadByte メソッドは -1 を返し、 Read メソッドは指定されたバイト配列に 0 バイトを読み取り、 Write メソッドと WriteByte メソッドはストリームの末尾に指定されたバイトを追加し、その長さを増やします。 指定した値が現在の容量より大きく、ストリームのサイズが変更可能な場合、容量は増加し、ストリーム内の現在の位置は変更されません。 長さを増やすと、古い長さと新しい長さの間のストリームの内容が 0 に初期化されます。

Note

MemoryStream インスタンスは、このメソッドが機能するための記述をサポートする必要があります。 CanWrite プロパティを使用して、現在のインスタンスが書き込みをサポートしているかどうかを判断します。 追加情報については、CanWriteを参照してください。

適用対象

こちらもご覧ください