UTF7Encoding.GetMaxByteCount(Int32) 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.
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 de code suivant montre comment utiliser la GetMaxByteCount méthode pour renvoyer le nombre maximal d’octets requis pour encoder un nombre spécifié de caractères.
using namespace System;
using namespace System::Text;
int main()
{
UTF7Encoding^ utf7 = gcnew UTF7Encoding;
int charCount = 2;
int maxByteCount = utf7->GetMaxByteCount( charCount );
Console::WriteLine( "Maximum of {0} bytes needed to encode {1} characters.", maxByteCount, charCount );
}
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 nécessaire GetBytes pour 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 permet généralement d’allouer moins de mémoire, tandis que la GetMaxByteCount méthode s’exécute généralement plus rapidement.
GetMaxByteCount est un nombre de cas le plus mauvais, 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 . Bien que UTF-7 soit très efficace pour encoder des données ASCII, un octet par caractère, il est extrêmement inefficace pour les autres données. Comme indiqué ci-dessus, GetMaxByteCount traite d’un pire cas. Si les données à encoder sont en grande partie ASCII, et surtout si le cluster de caractères ASCII est combiné, UTF-7 est beaucoup plus efficace que le nombre retourné par cette méthode ne le suggère.
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)
.