Freigeben über


MemoryStream.SetLength(Int64) Methode

Definition

Legt die Länge des aktuellen Streams auf den angegebenen Wert fest.

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

Parameter

value
Int64

Der Wert, auf den die Länge festgelegt werden soll.

Ausnahmen

Die Größe des aktuellen Streams kann nicht geändert werden, und value übersteigt die aktuelle Kapazität.

- oder -

Der aktuelle Stream unterstützt keine Schreibvorgänge.

value ist negativ oder größer als die maximale Länge von MemoryStream, wobei die maximale Länge (Int32.MaxValue - origin) ist, und origin ist der Index in den zugrunde liegenden Puffer, mit dem der Stream beginnt.

Hinweise

Diese Methode überschreibt SetLength.

Wenn der angegebene Wert kleiner als die aktuelle Länge des Datenstroms ist, wird der Stream abgeschnitten. Wenn nach dem Abschneiden die aktuelle Position innerhalb des Datenstroms am Ende des Datenstroms liegt, gibt die ReadByte -1-Methode zurück, die Read -Methode liest null Bytes in das bereitgestellte Bytearray, und Write methoden WriteByte fügen angegebene Bytes am Ende des Datenstroms an, wodurch die Länge erhöht wird. Wenn der angegebene Wert größer als die aktuelle Kapazität ist und der Stream veränderlich ist, wird die Kapazität erhöht, und die aktuelle Position im Stream bleibt unverändert. Wenn die Länge erhöht wird, wird der Inhalt des Datenstroms zwischen der alten und der neuen Länge auf Nullen initialisiert.

Hinweis

Ein MemoryStream instance muss das Schreiben unterstützen, damit diese Methode funktioniert. Verwenden Sie die CanWrite -Eigenschaft, um zu bestimmen, ob die aktuelle instance das Schreiben unterstützt. Weitere Informationen finden Sie unter CanWrite.

Gilt für:

Weitere Informationen