Partage via


UTF8Encoding.GetMaxCharCount(Int32) Méthode

Définition

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

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

Paramètres

byteCount
Int32

Nombre d'octets à décoder.

Retours

Nombre maximal de caractères produits par le décodage du nombre d'octets spécifié.

Exceptions

byteCount 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-

DecoderFallback a la valeur DecoderExceptionFallback.

Exemples

L’exemple suivant utilise la GetMaxCharCount méthode pour renvoyer le nombre maximal de caractères générés par le décodage d’un nombre d’octets spécifié.

using namespace System;
using namespace System::Text;
int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   int byteCount = 8;
   int maxCharCount = utf8->GetMaxCharCount( byteCount );
   Console::WriteLine( "Maximum of {0} characters needed to decode {1} bytes.", maxCharCount, byteCount );
}
using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        UTF8Encoding utf8 = new UTF8Encoding();
        int byteCount = 8;
        int maxCharCount = utf8.GetMaxCharCount(byteCount);
        Console.WriteLine(
            "Maximum of {0} characters needed to decode {1} bytes.",
            maxCharCount,
            byteCount
        );
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim byteCount As Integer = 8
        Dim maxCharCount As Integer = utf8.GetMaxCharCount(byteCount)
        Console.WriteLine( _
            "Maximum of {0} characters needed to decode {1} bytes.", _
            maxCharCount, _
            byteCount _
        )
    End Sub
End Class

Remarques

Pour calculer la taille exacte du tableau requise pour GetChars stocker les caractères résultants, vous appelez la GetCharCount méthode . Pour calculer la taille maximale du tableau, vous appelez la GetMaxCharCount méthode . La GetCharCount méthode alloue généralement moins de mémoire, tandis que la GetMaxCharCount méthode s’exécute généralement plus rapidement.

GetMaxCharCount est un nombre de cas le plus mauvais, y compris le pire cas pour le actuellement sélectionné DecoderFallback. Si un secours est choisi avec une chaîne potentiellement volumineuse, GetMaxCharCount 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 GetCharCount ou de Encoder.Convert .

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

Notes

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

S’applique à

Voir aussi