UTF7Encoding.GetMaxByteCount(Int32) Méthode

Définition

Calcule le nombre maximal d’octets produits par encodage du nombre spécifié de caractères.

public:
 override int GetMaxByteCount(int charCount);
public override int GetMaxByteCount(int charCount);
override this.GetMaxByteCount : int -> int
Public Overrides Function GetMaxByteCount (charCount As Integer) As Integer

Paramètres

charCount
Int32

Nombre de caractères à encoder.

Retours

Nombre maximal d’octets générés par encodage du nombre spécifié de caractères.

Exceptions

charCount est inférieur à zéro.

-ou-

Le nombre obtenu d’octets est supérieur au nombre maximal qui peut être retourné en tant qu’int.

Un secours s’est produit (pour plus d’informations, consultez Encodage de caractères dans .NET)

-et-

EncoderFallback a la valeur EncoderExceptionFallback.

Exemples

L’exemple de code suivant montre comment utiliser la GetMaxByteCount méthode pour retourner le nombre maximal d’octets requis pour encoder un nombre spécifié de caractères.

using System;
using System.Text;

class UTF7EncodingExample {
    public static void Main() {
        UTF7Encoding utf7 = new UTF7Encoding();
        int charCount = 2;
        int maxByteCount = utf7.GetMaxByteCount(charCount);
        Console.WriteLine(
            "Maximum of {0} bytes needed to encode {1} characters.",
            maxByteCount,
            charCount
        );
    }
}
Imports System.Text

Class UTF7EncodingExample
    
    Public Shared Sub Main()
        Dim utf7 As New UTF7Encoding()
        Dim charCount As Integer = 2
        Dim maxByteCount As Integer = utf7.GetMaxByteCount(charCount)
        Console.WriteLine( _
            "Maximum of {0} bytes needed to encode {1} characters.", _
            maxByteCount, _
            charCount _
        )
    End Sub
End Class

Remarques

Pour calculer la taille exacte du tableau requise pour GetBytes stocker les octets résultants, l’application utilise GetByteCount. Pour calculer la taille maximale du tableau, l’application doit utiliser GetMaxByteCount. La GetByteCount méthode autorise généralement l’allocation de moins de mémoire, tandis que la GetMaxByteCount méthode s’exécute généralement plus rapidement.

GetMaxByteCount est un nombre de pires cas, y compris le pire cas pour le moment sélectionné EncoderFallback. Si un secours est choisi avec une chaîne potentiellement volumineuse, GetMaxByteCount peut retourner des valeurs volumineuses.

Dans la plupart des cas, cette méthode retourne des nombres raisonnables pour les petites chaînes. Pour les chaînes volumineuses, vous devrez peut-être choisir d’utiliser des mémoires tampons très volumineuses et d’intercepter des erreurs dans les rares cas où une mémoire tampon plus raisonnable est dépassée. Vous pouvez également envisager une approche différente à l’aide GetByteCount ou Encoder.Convert. Bien que UTF-7 soit très efficace pour encoder les données ASCII, un octet par caractère, il est extrêmement inefficace pour d’autres données. Comme indiqué ci-dessus, GetMaxByteCount il s’agit d’un pire cas. Si les données à encoder sont en grande partie ASCII, et surtout si les caractères ASCII se regroupent, UTF-7 est beaucoup plus efficace que le nombre retourné par cette méthode.

GetMaxByteCount n’a aucune relation avec GetChars. Si votre application a besoin d’une fonction similaire à utiliser avec GetChars, elle doit utiliser GetMaxCharCount.

Note

GetMaxByteCount(N) n’est pas nécessairement la même valeur que N* GetMaxByteCount(1).

S’applique à

Voir aussi