MemoryStream.SetLength(Int64) Metódus

Definíció

Az aktuális stream hosszát a megadott értékre állítja.

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

Paraméterek

value
Int64

A beállított hossz.

Kivételek

Az aktuális stream nem méretezhető újra, és value nagyobb, mint a jelenlegi kapacitás.

-vagy-

Az aktuális stream nem támogatja az írást.

value negatív

-vagy-

A .NET 11-es és újabb verzióiban a value nagyobb, mint Array.MaxLength.

-vagy-

A .NET 10-ben és korábbi verzióiban value nagyobb, mint a MemoryStream maximális hossza, ahol a maximális hossz (Int32.MaxValue - origin), és origin a stream indításának alapjául szolgáló puffer indexe.

Megjegyzések

Ez a metódus felülbírálja a parancsot SetLength.

Ha a megadott érték kisebb, mint a stream aktuális hossza, a stream csonkolt lesz. Ha a csonkolás után a stream aktuális pozíciója túllépi a stream végét, a ReadByte metódus -1 értéket ad vissza, a Read metódus nulla bájtot olvas be a megadott bájttömbbe, a Write metódus pedig WriteByte hozzáfűzi a megadott bájtokat a stream végén, növelve annak hosszát. Ha a megadott érték nagyobb, mint az aktuális kapacitás, és a stream átméretezhető, a kapacitás megnő, és a streamen belüli jelenlegi pozíció nem változik. Ha a hossz megnő, a régi és az új hossz közötti stream tartalma nullákra lesz inicializálva.

Note

Egy MemoryStream példánynak támogatnia kell a metódus írását a működéshez. CanWrite A tulajdonság használatával állapítsa meg, hogy az aktuális példány támogatja-e az írást. További információ: CanWrite.

A következőre érvényes:

Lásd még