Partage via


UTF8Encoding.GetMaxByteCount(Int32) Méthode

Définition

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

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 produits par l'encodage du nombre de caractères spécifié.

Exceptions

charCount est inférieur à zéro.

- ou -

Le nombre d’octets résultant est supérieur au nombre maximal accepté pour un entier.

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

-et-

EncoderFallback a la valeur EncoderExceptionFallback.

Exemples

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

using namespace System;
using namespace System::Text;
int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   int charCount = 2;
   int maxByteCount = utf8->GetMaxByteCount( charCount );
   Console::WriteLine( "Maximum of {0} bytes needed to encode {1} characters.", maxByteCount, charCount );
}
using System;
using System.Text;

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

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim charCount As Integer = 2
        Dim maxByteCount As Integer = utf8.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 par GetBytes pour stocker les octets résultants, vous appelez la GetByteCount méthode . Pour calculer la taille maximale du tableau, vous appelez la GetMaxByteCount méthode . La GetByteCount méthode alloue généralement 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 actuellement sélectionné EncoderFallback. Si un secours est choisi avec une chaîne potentiellement volumineuse, GetMaxByteCount peut retourner des valeurs importantes.

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 entre utiliser des mémoires tampons très volumineuses et 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 de GetByteCount ou de Encoder.Convert . Par exemple, le texte en anglais et dans de nombreuses autres langues n’a souvent besoin que d’un seul octet UTF-8 pour représenter un caractère, mais le nombre retourné par GetMaxByteCount doit permettre que la chaîne à convertir se compose entièrement de caractères qui nécessitent chacun quatre octets.

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

Notes

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

S’applique à

Voir aussi