MemoryStream.SetLength(Int64) Metod

Definition

Anger längden på den aktuella strömmen till det angivna värdet.

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

Parametrar

value
Int64

Längden som ska anges.

Undantag

Den aktuella strömmen kan inte ändras och value är större än den aktuella kapaciteten.

-eller-

Den aktuella strömmen stöder inte skrivning.

value är negativ

-eller-

I .NET 11 och senare versioner är value större än Array.MaxLength.

-eller-

I .NET 10 och tidigare versioner value är större än den maximala längden på MemoryStream, där den maximala längden är (Int32.MaxValue - origin), och origin är indexet i den underliggande bufferten där strömmen startar.

Kommentarer

Den här metoden åsidosätter SetLength.

Om det angivna värdet är mindre än strömmens aktuella längd trunkeras strömmen. Om den aktuella positionen i strömmen efter trunkeringen är förbi strömmens slut ReadByte returnerar metoden -1, Read metoden läser noll byte i den angivna bytematrisen och WriteWriteByte metoderna lägger till angivna byte i slutet av strömmen, vilket ökar dess längd. Om det angivna värdet är större än den aktuella kapaciteten och strömmen kan ändras ökas kapaciteten och den aktuella positionen i dataströmmen ändras inte. Om längden ökar initieras innehållet i strömmen mellan den gamla och den nya längden till nollor.

Note

En MemoryStream instans måste ha stöd för att den här metoden ska fungera. Använd egenskapen CanWrite för att avgöra om den aktuella instansen stöder skrivning. Mer information finns i CanWrite.

Gäller för

Se även