Udostępnij za pośrednictwem


MemoryStream.SetLength(Int64) Metoda

Definicja

Ustawia długość bieżącego strumienia na określoną wartość.

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

Parametry

value
Int64

Wartość, w której ma być ustawiona długość.

Wyjątki

Bieżący strumień nie można zmienić rozmiaru i value jest większy niż bieżąca pojemność.

-lub-

Bieżący strumień nie obsługuje zapisu.

value jest ujemna lub jest większa niż maksymalna długość MemoryStreamobiektu , gdzie maksymalna długość wynosi (Int32.MaxValue - origin) i origin jest indeksem w podstawowym buforze, w którym uruchamia się strumień.

Uwagi

Ta metoda zastępuje metodę SetLength.

Jeśli określona wartość jest mniejsza niż bieżąca długość strumienia, strumień zostanie obcięty. Jeśli po obcięciu bieżącej pozycji w strumieniu znajduje się poza końcem strumienia, ReadByte metoda zwraca wartość -1, Read metoda odczytuje zero bajtów do dostarczonej tablicy bajtów, a WriteWriteByte metody dołączają określone bajty na końcu strumienia, zwiększając jego długość. Jeśli określona wartość jest większa niż bieżąca pojemność, a strumień można zmienić rozmiar, zwiększa się pojemność, a bieżące położenie w strumieniu pozostaje niezmienione. W przypadku zwiększenia długości zawartość strumienia między starą a nową długością jest inicjowana na zera.

Uwaga

Aby MemoryStream ta metoda działała, wystąpienie musi obsługiwać pisanie. CanWrite Użyj właściwości , aby określić, czy bieżące wystąpienie obsługuje zapisywanie. Aby uzyskać dodatkowe informacje, zobacz CanWrite.

Dotyczy

Zobacz też