MemoryStream.SetLength(Int64) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Définit la longueur du flux actuel sur la valeur spécifiée.
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ètres
- value
- Int64
Longueur à définir.
Exceptions
Le flux actuel n’est pas redimensionnable et value est supérieur à la capacité actuelle.
-ou-
Le flux actuel ne prend pas en charge l’écriture.
value est négatif
-ou-
Dans .NET versions 11 et ultérieures, value est supérieur à Array.MaxLength.
-ou-
Dans .NET 10 et versions antérieures, value est supérieur à la longueur maximale de la MemoryStream, où la longueur maximale est (Int32.MaxValue - origin), et origin est l’index dans la mémoire tampon sous-jacente au démarrage du flux.
Remarques
Cette méthode se substitue à SetLength.
Si la valeur spécifiée est inférieure à la longueur actuelle du flux, le flux est tronqué. Si, après la troncation, la position actuelle dans le flux dépasse la fin du flux, la ReadByte méthode retourne -1, la Read méthode lit zéro octets dans le tableau d’octets fourni et Write les WriteByte méthodes ajoutent des octets spécifiés à la fin du flux, augmentant sa longueur. Si la valeur spécifiée est supérieure à la capacité actuelle et que le flux est redimensionnable, la capacité est augmentée et la position actuelle dans le flux n’est pas modifiée. Si la longueur est augmentée, le contenu du flux entre l’ancien et la nouvelle longueur sont initialisés à zéros.
Note
Une MemoryStream instance doit prendre en charge l’écriture pour que cette méthode fonctionne. Utilisez la CanWrite propriété pour déterminer si l’instance actuelle prend en charge l’écriture. Pour plus d’informations, consultez CanWrite.